wp_array_slice_assoc()
Оставляет элементы из первого массива, ключи (индексы) которых совпадают со значениями второго массива.
Делает тоже самое что array_intersect_key( $array1, $array2 ), только сравнивает ключи первого массива со значениями второго.
В PHP есть похожие функции:
- array_intersect_key( $array1, $array2 ) — оставляет элементы массива, ключи которого совпадают с ключами второго массива.
- $array = array_intersect( $array1, $array2 ) — оставляет элементы массива, значения которых совпадают со значениями второго массива.
- $array = array_intersect_assoc( $array1, $array2 ) — оставляет элементы массива, индексы и значения которых совпадают со индексами и значениями второго массива.
Для противоположного вычисления, когда в первом массиве нужно оставить только те элементы, которых нет во втором массиве используйте PHP функции:
Хуков нет.
Возвращает
Массив
. Кусок переданного массива с нужными элементами.
Использование
wp_array_slice_assoc( $array, $keys );
- $array(массив) (обязательный)
- Оригинальный массив, элементы которого нужно получить.
- $keys(массив) (обязательный)
- Список ключей $array которые нужно оставить.
Примеры
#1 Оставим только нужные элементы из переданного массива
Этот пример показывает как работает функция. У нас есть массив и нам нужно обработать его и оставить в нем только указанные элементы по ключу.
$array = [ 'one' => 'один', 'two' => 'два', 'three' => 'три', ]; $needed_keys = array( 'one', 'three' ); $filtered = wp_array_slice_assoc( $array, $needed_keys ); print_r( $filtered ); /* получим Array ( [one] => один [three] => три ) */
Тоже самое можно сделать в PHP через array_intersect_key():
$filtered = array_intersect_key( $array, array_flip( $needed_keys ) );
#2 Пример работы array_intersect()
Оставляет элементы из первого массива, значения которых совпадают со значениями второго массива.
Т.е. сравниваются только значения
$array = [ 'one' => 'один', 'two' => 'два', 'three' => 'три', ]; $needed_keys = array( ''=>'один', 'one'=>'' ); $filtered = array_intersect( $array, $needed_keys ); print_r( $filtered ); /* получим Array ( [one] => один ) */
#3 Пример работы array_intersect_assoc()
Оставляет элементы из первого массива, значения и индексы которых совпадают со значениями и индексами второго массива.
$array = [ 'one' => 'один', 'two' => 'два', 'three' => 'три', ]; $needed_keys = array( 'one'=>'один', ''=>'два' ); $filtered = array_intersect_assoc( $array, $needed_keys ); print_r( $filtered ); /* получим Array ( [one] => один ) */
Список изменений
С версии 3.1.0 | Введена. |
Код wp_array_slice_assoc() wp array slice assoc WP 6.7.1
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; }