Как отфильтровать многомерный массив при помощи значений в одномерном массиве?

Для фильтрации многомерного массива при помощи значений одномерного массива в 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.