WP_ARRAY_SLICE_ASSOC() │ WP 3.1.0
Функция wp_array_slice_assoc
позволяет извлекать часть ассоциативного массива, основываясь на заданных ключах.
- Время выполнения — 0.000017 сек (очень быстро) | 50000 раз — 0.08 сек (световая скорость)
- PHP 7.0.4, WP 4.4.2
Возвращаемое значение
Функция возвращает массив, содержащий указанные элементы.
Использование
wp_array_slice_assoc( $input_array, $keys );
- $input_array (array) (обязательный) — исходный массив.
- $keys (array) (обязательный) — список ключей, которые нужно оставить.
Примеры
Пример 1: Оставляем только необходимые элементы из массива
В этом примере показано, как работает данная функция. У нас есть массив, и мы хотим оставить только указанные элементы по ключам.
$array = [
'one' => '1one',
'two' => '2two',
'three' => '3three',
];
$needed_keys = array('one', 'three');
$filtered = wp_array_slice_assoc($array, $needed_keys);
print_r($filtered);
/* Получаем:
Array
(
[one] => 1one
[three] => 3three
)
*/
Также это можно сделать с помощью функции array_intersect_key()
в PHP:
$filtered = array_intersect_key($array, array_flip($needed_keys));
Пример 2: Использование функции ARRAY_INTERSECT()
Данная функция оставляет элементы из первого массива, значения которых совпадают со значениями второго массива. Сравнение происходит только по значениям.
$array = [
'one' => '1one',
'two' => '2two',
'three' => '3three',
];
$needed_keys = array('' => '1one', 'one' => '');
$filtered = array_intersect($array, $needed_keys);
print_r($filtered);
/* Получаем:
Array
(
[one] => 1one
)
*/
Пример 3: Использование функции ARRAY_INTERSECT_ASSOC()
Эта функция оставляет элементы из первого массива, причем значения и ключи должны совпадать со значениями и ключами второго массива.
$array = [
'one' => 'foo',
'two' => 'bar',
'three' => 'baz',
];
$needed_keys = array('one' => 'foo', 'three');
$filtered = array_intersect_assoc($array, $needed_keys);
print_r($filtered);
/* Получаем:
Array
(
[one] => foo
)
*/
Изменения
Функция была введена в версии 3.1.0.
Код функции
Ниже представлен код функции wp_array_slice_assoc
:
function wp_array_slice_assoc($input_array, $keys) {
$slice = array();
foreach ($keys as $key) {
if (isset($input_array[$key])) {
$slice[$key] = $input_array[$key];
}
}
return $slice;
}
Эта функция проходит по массиву ключей и добавляет в новый массив только те элементы, которые существуют в исходном массиве.
Сопутствующие функции
Вот некоторые функции, которые могут помочь при работе с массивами в WordPress:
apply_filters_ref_array()
wp_filter_object_list()
wp_is_numeric_array()
wp_list_filter()
wp_list_pluck()
wp_list_sort()
Если у вас возникли вопросы, не стесняйтесь задавать их!