📅  最后修改于: 2023-12-03 15:03:36.215000             🧑  作者: Mango
array_walk_recursive()
函数是PHP中用于遍历多维数组的函数之一。它对数组中的每个元素递归应用用户自定义的回调函数,可以用于修改数组元素、格式化数据、验证数据等。
array_walk_recursive(array &$array, callable $callback, mixed $userdata = NULL): bool
$array
:要遍历的多维数组。$callback
:回调函数,用于对数组中的元素进行操作。$userdata
:(可选)用户自定义的数据,可以在回调函数中使用。成功时返回true
,失败时返回false
。
以下是一个使用array_walk_recursive()
函数的示例:
<?php
function modifyValue(&$item, $key)
{
if (is_string($item)) {
$item = strtoupper($item);
}
}
$data = array(
'name' => 'John',
'age' => 30,
'skills' => array('PHP', 'JavaScript', 'HTML'),
'details' => array(
'phone' => '1234567890',
'email' => 'john@example.com'
)
);
array_walk_recursive($data, 'modifyValue');
print_r($data);
?>
输出结果:
Array
(
[name] => JOHN
[age] => 30
[skills] => Array
(
[0] => PHP
[1] => JAVASCRIPT
[2] => HTML
)
[details] => Array
(
[phone] => 1234567890
[email] => JOHN@EXAMPLE.COM
)
)
在上面的示例中,我们定义了一个回调函数modifyValue()
,它将字符串转换为大写。然后,我们定义了一个多维数组$data
,其中包含了一些字符串值。通过调用array_walk_recursive()
函数并传入回调函数modifyValue
,我们可以修改数组中的每个字符串元素,并得到修改后的结果。
array_walk_recursive()
函数会直接修改原始数组中的元素。如果不希望改变原始数组,可以在回调函数中通过引用传递的方式操作数组副本。$item
和$key
。$item
表示当前的数组元素,$key
表示当前元素的键名。array_walk_recursive()
函数对多维数组进行递归遍历,可以处理任意级别的嵌套数组。