array_combine関数をphp4でも使う
CakePHPのcontroller.phpを見てたらarray_combineっていう関数を使っていて、なんだこれと思い。PHPポケットリファレンスを見て探したけどない・・・
ネットで調べたら*1、PHP5にだけある関数なんですね。
でもCakePHPで使ってるということはどこかで定義してあるハズと思いgrepしてみたら。
basics.php(162): if (!function_exists('array_combine')) {
basics.php(171): function array_combine($a1, $a2) {
とでて参りました。
以下その部分のソース。。。
<?php if (!function_exists('array_combine')) { /** * Combines given identical arrays by using the first array's values as keys, * and the second one's values as values. (Implemented for back-compatibility with PHP4) * * @param array $a1 Array to use for keys * @param array $a2 Array to use for values * @return mixed Outputs either combined array or false. */ function array_combine($a1, $a2) { $a1 = array_values($a1); $a2 = array_values($a2); $c1 = count($a1); $c2 = count($a2); if ($c1 != $c2) { return false; } if ($c1 <= 0) { return false; } $output = array(); for ($i = 0; $i < $c1; $i++) { $output[$a1[$i]] = $a2[$i]; } return $output; } } ?>
他にもネットで探してたら、他にもソースが。
<?php if (!function_exists('array_combine')) { function array_combine($arr1,$arr2) { $out = array(); foreach ($arr1 as $key1 => $value1) { $out[$value1] = $arr2[$key1]; } return $out; } } ?>
忘れないうちにメモ。