Для фильтрации многомерного массива при помощи значений одномерного массива в PHP можно использовать функцию array_filter()
в сочетании с функцией in_array()
.
Перед тем как приступить к фильтрации, необходимо понять структуру обоих массивов.
Допустим, у нас есть многомерный массив $multidimensionalArray
, который имеет следующую структуру:
$multidimensionalArray = [ ['id' => 1, 'name' => 'John', 'age' => 25], ['id' => 2, 'name' => 'Jane', 'age' => 30], ['id' => 3, 'name' => 'Mike', 'age' => 35], ];
И у нас есть одномерный массив $filterArray
, содержащий значения, которые будем использовать для фильтрации:
$filterArray = [25, 30];
Теперь можем приступить к фильтрации многомерного массива с помощью значения в одномерном массиве. Для этого используем функцию array_filter()
, передавая ей анонимную функцию, которая будет применяться к каждому элементу многомерного массива. Функция in_array()
будет проверять, содержит ли элемент значение из одномерного массива. Если значение найдено, элемент будет включен в новый отфильтрованный массив. В противном случае, элемент будет исключен из массива результатов.
Вот как будет выглядеть код:
$filteredArray = array_filter($multidimensionalArray, function($item) use ($filterArray) { return in_array($item['age'], $filterArray); });
После выполнения этого кода, $filteredArray
будет содержать только те элементы многомерного массива, у которых значение ключа 'age'
совпадает с одним из значений в одномерном массиве $filterArray
.
В нашем примере, $filteredArray
будет содержать следующий результат:
Array ( [0] => Array ( [id] => 1 [name] => John [age] => 25 ) [1] => Array ( [id] => 2 [name] => Jane [age] => 30 ) )
Теперь вы сможете фильтровать многомерный массив на основе значений в одномерном массиве, используя функции array_filter()
и in_array()
в PHP.