array_unique для многомерных массивов

$unique = array_unique($array);

Функция array_unique возвращает массив без повторяющихся значений, она работает и с многомерными массивами. Очисть массивы от дублей можно следующими способами:

Способ №1

$array = array_unique($array, SORT_REGULAR);
PHP

Способ №2

$array = array_map('unserialize', array_unique(array_map('serialize', $array)));
PHP

Второй способ чувствителен к типу данных, т.е. 0 => 1, и 0 => '1', будут считаться разными.

Удаление дубликатов по одному ключу

function array_unique_key($array, $key) { 
	$tmp = $key_array = array(); 
	$i = 0; 

	foreach($array as $val) { 
		if (!in_array($val[$key], $key_array)) { 
			$key_array[$i] = $val[$key]; 
			$tmp[$i] = $val; 
		} 
		$i++; 
	} 
	return $tmp; 
}
PHP

Например, в массиве нужно удалить дубликаты с одинаковым id, другие элементы массива не важны.

$test = array( 
	array(
		'id' => 1,
		'name' => 'Диски Sparco',
		'price' => 5000,
	),
	array(
		'id' => 1,
		'name' => 'Диски Sparco',
		'price' => 6000,
	), 	
	array(
		'id' => 2,
		'name' => 'Автокресло',
		'price' => 3000,
	), 

);

$test = array_unique_key($test, 'id'); 
print_r($test);
PHP

Результат

Array(
	[0] => Array(
		[id] => 1
		[name] => Диски Sparco
		[price] => 5000
	)
	[2] => Array(
		[id] => 2
		[name] => Автокресло
		[price] => 3000
	)
)
28.06.2019, обновлено 31.08.2019 372

Поделится

Другие публикации

В статье приведен пример формы и php скрипта для безопасной загрузки файлов на сервер, метод отправки файлов через...
Изображения нужно сжимать для ускорения скорости загрузки сайта, но как это сделать? На многих хостингах нет...
В данном примере описано как вывести многоуровневый список checkbox и radio button из БД с помощью PHP функций...
UTM метки – это дополнительные данные, которые добавляются в URL с помощью GET-параметров при клике на баннер в...
Помимо стандартных функций сортировки в PHP есть функции с использованием пользовательских вызовов для сравнения...
В статье приведены основные примеры работы с расширением PHP PDO. Такие как подключение к БД, получение, изменение и...