How can regular expressions be effectively used to search for values in a multidimensional array in PHP?

Regular expressions can be effectively used to search for values in a multidimensional array in PHP by iterating through the array and using preg_match function to match the desired pattern against each value. This allows for flexible and powerful searching capabilities within nested arrays.

function searchMultidimensionalArray($array, $pattern) {
    $matches = [];
    
    foreach (new RecursiveIteratorIterator(new RecursiveArrayIterator($array)) as $value) {
        if (is_string($value) && preg_match($pattern, $value)) {
            $matches[] = $value;
        }
    }
    
    return $matches;
}

// Example usage
$array = [
    'key1' => 'value1',
    'key2' => [
        'subkey1' => 'subvalue1',
        'subkey2' => 'subvalue2',
    ],
];

$pattern = '/value/';
$matches = searchMultidimensionalArray($array, $pattern);

print_r($matches);