How can the array_walk_recursive function in PHP be applied to nested arrays and what are its limitations?

When dealing with nested arrays in PHP, the array_walk_recursive function can be used to apply a callback function to each element in the array, including elements in nested arrays. This function allows for easy iteration over all elements in a multidimensional array without the need for nested loops. However, it's important to note that array_walk_recursive only works with arrays and will not iterate over objects or other data types.

// Example of using array_walk_recursive to apply a callback function to all elements in a nested array

$data = [
    'name' => 'John',
    'age' => 30,
    'children' => [
        'child1' => ['name' => 'Alice', 'age' => 5],
        'child2' => ['name' => 'Bob', 'age' => 8]
    ]
];

// Callback function to uppercase all names
function uppercaseNames(&$value, $key) {
    if ($key === 'name') {
        $value = strtoupper($value);
    }
}

array_walk_recursive($data, 'uppercaseNames');

print_r($data);