Чтобы выполнить поиск элемента в многомерном массиве по ключу, вы можете использовать циклы и условные операторы. Вот пример функции, которая выполняет поиск по ключу и возвращает значение элемента, если ключ найден:
```php
function searchByKey($array, $key) {
foreach ($array as $item) {
if (array_key_exists($key, $item)) {
return $item[$key];
}
}
return null;
}
// Пример использования
$array = [
['id' => 1, 'name' => 'John'],
['id' => 2, 'name' => 'Jane'],
['id' => 3, 'name' => 'Bob']
];
$result = searchByKey($array, 'id');
echo $result; // Выведет: 1
```
Относительно использования функции `array_filter` для поиска многомерного массива по значению ключа, это не входит в задачи, которые она выполняет. Функция `array_filter` фильтрует элементы массива, оставляя только те, для которых указанная функция-коллбэк возвращает `true`. Она не предлагает возможности для поиска по ключу.
В вашем примере, функция `array_filter` возвращает пустой массив, потому что возвращаемое значение в коллбэке (`$item['id'] === 4`) всегда является `false`. Следовательно, ни один элемент не проходит фильтр и возвращается пустой массив.
Если вы хотите вернуть подмассив (массив элементов) по значению ключа, вам следует использовать циклы и условные операторы, как показано в первом примере.