Блог

PHP:фильтровать массив ключей

Не так часто применяется но полезно сохранить как заметку. Задача, написать код в две строчки, профильтровать ассоциативный массив и получить заданные ключи. Первым что приходит в голову это использовать цикл, но очень часто использовать циклы не хорошо, а использовать базовые функции языка весьма полезнее, поскольку они уже оптимизированы и столько лет присутствуют. Почему бы и не использовать?

<?php 
$list = array('one' => 1, 'two' => 2, 'three' => 3,
                'four' => 4, 'five' => 5, 'six' => 6, 'seven' => 7);
$allowed = array('first', 'three', 'seven');
$result = array_intersect_key($list, array_flip($allowed));
var_dump($result);
exit;

Результат:

array(2) { [“three”]=> int(3) [“seven”]=> int(7) }

Функция array_intersect_key() возвращает массив, содержащий элементы array1, имеющие ключи, содержащиеся во всех последующих параметрах.

Источник: stackoverflow