What are some best practices for efficiently searching through multidimensional arrays in PHP?

Searching through multidimensional arrays efficiently in PHP can be achieved by using recursive functions to traverse through the nested arrays. One approach is to create a function that takes the array, the key to search for, and an optional flag to indicate if the search should be case-sensitive. The function will recursively iterate through the array and return the value if found, or false if not found.

function searchMultidimensionalArray($array, $key, $caseSensitive = false) {
    foreach ($array as $item) {
        if (is_array($item)) {
            $result = searchMultidimensionalArray($item, $key, $caseSensitive);
            if ($result !== false) {
                return $result;
            }
        } else {
            if ($caseSensitive) {
                if ($item === $key) {
                    return $item;
                }
            } else {
                if (strcasecmp($item, $key) === 0) {
                    return $item;
                }
            }
        }
    }
    
    return false;
}

// Example usage
$array = [
    'foo' => [
        'bar' => 'value1',
        'baz' => 'value2'
    ],
    'qux' => 'value3'
];

$result = searchMultidimensionalArray($array, 'value2');
if ($result !== false) {
    echo "Value found: " . $result;
} else {
    echo "Value not found";
}