wp_array_slice_assoc()
Залишає елементи першого масиву, ключі (індекси) яких збігаються зі значеннями другого масиву.
У PHP є схожі функції:
- $array = array_intersect( $array1, $array2 ) — залишає елементи першого масиву, значення яких збігаються зі значеннями другого масиву.
- $array = array_intersect_assoc( $array1, $array2 ) — залишає елементи з першого масиву, значення та індекси яких збігаються зі значеннями та індексами другого масиву.
Для протилежного обчислення, коли в першому масиві потрібно залишити лише ті елементи, яких немає у другому масиві, використовуйте PHP функції:
1 раз – 0.000017 сек
(дуже швидко) | 50000 разів – 0.08 сек
(швидкість світла) |
PHP 7.0.4, WP 4.4.2
(дуже швидко) | 50000 разів – 0.08 сек
(швидкість світла) |
PHP 7.0.4, WP 4.4.2
Хуків немає.
Повертає
Массив. Шматок переданого масиву із потрібними елементами.
Використання
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] => три
)
*/#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.0.2
function wp_array_slice_assoc( $array, $keys ) {
$ slice = array ();
foreach ( $keys as $key ) {
if ( isset( $array[ $key ] ) ) {
$slice[ $key ] = $array[ $key ];
}
}
return $slice;
}