wp_array_slice_assoc() WP 3.1.0

Залишає елементи першого масиву, ключі (індекси) яких збігаються зі значеннями другого масиву.

У 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

Хуків немає.

Повертає

Массив. Шматок переданого масиву із потрібними елементами.

Використання

wp_array_slice_assoc($array, $keys);
$array
(масив) (обов’язковий)
Оригінальний масив, елементи якого необхідно отримати.
$keys
(масив) (обов’язковий)
Список ключів
$array , які потрібно залишити.

Приклади

0

#1 Залишимо лише потрібні елементи з переданого масиву

Цей приклад показує, як працює функція. У нас є масив і нам потрібно обробити його та залишити в ньому тільки зазначені елементи за ключом.

$array = [
	'one' => 'один',
	'two' => 'два',
	'three' => 'три',
];

$needed_keys = array('one', 'three');
$filtered = wp_array_slice_assoc($array, $needed_keys);

print_r($filtered);

/* отримаємо
Array
(
	[one] => один
	[three] => три
)
*/
0

#2 Приклад роботи array_intersect()

Залишає елементи першого масиву, значення яких збігаються зі значеннями другого масиву.

Тобто. порівнюються лише значення

$array = [
	'one' => 'один',
	'two' => 'два',
	'three' => 'три',
];

$needed_keys = array( ''=>'один', 'one'=>'' );
$filtered = array_intersect( $array, $needed_keys );

print_r($filtered);

/* отримаємо
Array
(
	[one] => один
)
*/
0

#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 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;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *