$array = array('a' => 'apple' , 'c' => 'cat', 'ar' => array('d' => 'dog', 'e' => 'elephant'));
输出:
Array ( [a] => apple [c] => cat [ar] => Array ( [d] => dog [e] => elephant ) )
function upper($str){ return strtoupper($str); } $array_upper = array_map('upper', $array);
但它似乎不适用于嵌套数组,因为它的结果如下:
Array ( [a] => APPLE [c] => CAT [ar] => ARRAY )
Array ( [a] => APPLE [c] => CAT [ar] => ARRAY ( [d] => DOG [e] => ELEPHANT ) )
试用 array_walk 和 array_walk_recursive print_r(...) 将数组结果返回到 1
array_walk
array_walk_recursive
print_r(...)
1
所以基本上如何将回调函数应用到可以嵌套到n级的嵌套数组。这应该很容易,但我遗漏了一些东西:(
array_walk_recursive() 应该可以,但它会修改传入的数组并返回bool,这就是为什么 1
array_walk_recursive()
请注意,您需要确保作为回调传递的函数也将第一个参数(数组元素值)作为引用进行修改,而不是返回修改后的值。(不像 array_map() ),例如。
array_map()
function upper(&$str){ $str = strtoupper($str); }