📜  PHP | array_walk_recursive()函数(1)

📅  最后修改于: 2023-12-03 15:03:36.215000             🧑  作者: Mango

PHP | array_walk_recursive()函数

介绍

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()函数对多维数组进行递归遍历,可以处理任意级别的嵌套数组。