実際にarray_walk_recursive
の値はTrue
です。関数のdocumentationを見ると、このメソッドが行っていることは、オブジェクト内の各項目とキーに対して関数_output
を呼び出すことです。
ます。また、このようになりますいくつかのコードを持っている必要があり、私は想像、それが正しく機能するために取得する:それはあなたがarray_walk_recursive
に与えた文字列に変換された名前であるため、_output
が呼び出され
function _output($data, $key) {
echo "For the key $key, I got the data: ";
print_r($data);
}
関数。それはあなたの値を画面に表示するはずです。
編集:
私が実際にかかわらず、あなたが元々やりたいと思ったものを答えていないよということらしいです。配列のすべての要素に関数を適用したい場合は、array_map
を参照することをお勧めします。あなたはこのようarray_map
を使用することができます。
function double($item) {
return 2 * $item;
}
array_map('double', $item);
最終的には、再帰はあなたが望む何かがある場合、あなたはおそらくこのような何かを行うことができます:$ OBJのような別の配列を返します
function callback($key, $value) {
// do some stuff
}
function array_map_recursive($callback, $array) {
$new_array = array()
foreach($array as $key => $value) {
if (is_array($value)) {
$new_array[$key] = array_map_recursive($callback, $value);
} else {
$new_array[$key] = call_user_func($callback, $key, $value);
}
}
return $new_array;
}
array_map_recursive('callback', $obj);
が、コールバックがやろうとしていることは何でも。