Поиск по значению ключа в многомерном массиве
Допустим, у нас есть массив:
$arr = array( 0 => array( id => 1, name => "cat 1" ), 1 => array( id => 2, name => "cat 2" ), 2 => array( id => 3, name => "cat 1" ) );
Нужно найти все элементы, ключи которых равняются "cat 1":
// Функция function search($array, $key, $value) { $results = array(); if (is_array($array)) { if (isset($array[$key]) && $array[$key] == $value) $results[] = $array; foreach ($array as $subarray) $results = array_merge($results, search($subarray, $key, $value)); } return $results; } // Используем print_r(search($arr, 'name', 'cat 1'));
Результат
Array ( [0] => Array ( [id] => 1 [name] => cat 1 ) [1] => Array ( [id] => 3 [name] => cat 1 ) )