English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Этот пример рассказывает о методе удаления дубликатов в двумерных массивах на PHP. Предлагается для обсуждения и использования, подробности см. ниже:
Для следующего двумерного массива, необходимо удалить дубликаты:
$arr = array( '0'=>array( 'name'=>'james', 'age'=>30, ), '1'=>array( 'name'=>'susu', 'age'=>26, ), '2'=>array( 'name'=>'james', 'age'=>30, ), 'new'=>array( 'name'=>'kube', 'age'=>37, ), 'list'=>array( 'name'=>'kube', 'age'=>27, ), );
1、 Значения внутри одноэлементных массивов внутри двумерного массива не должны быть полностью одинаковыми, удалите повторяющиеся элементы:
Код如下:
<?php $arr = array( '0'=>array( 'name'=>'james', 'age'=>30, ), '1'=>array( 'name'=>'susu', 'age'=>26, ), '2'=>array( 'name'=>'james', 'age'=>30, ), 'new'=>array( 'name'=>'kube', 'age'=>37, ), 'list'=>array( 'name'=>'kube', 'age'=>27, ), ); printf("Before tranform the array:<br>"); //输出原来的数组 print_r($arr); echo "<br/>"; function more_array_unique($arr=array()){}} foreach($arr[0] as $k => $v){ $arr_inner_key[]= $k; //запись ключей внутреннего массива в одномерный массив } foreach ($arras $k => $v){ $v =join(",",$v); //снижение размерности с помощью implode() также можно $temp[$k] =$v; //сохранение прежних ключей $temp[] это без ключей } printf("После разделения массива:<br>"); print_r($temp); //вывод разбитого массива echo"<br/>"; $temp =array_unique($temp); //удаление дубликатов: удаление повторяющихся строк foreach ($tempas $k => $v){ $a = explode(",",$v); //разбиение и重组 как: Array( [0] => james [1] => 30 ) $arr_after[$k]= array_combine($arr_inner_key,$a); //восстановление прежних ключей и значений } //ksort($arr_after);//排序 если необходимо: ksort для сортировки массива (сохранение ключей), sort для сортировки без ключей return$arr_after; } $arr_new = more_array_unique($arr); //вызов функции удаления дубликатов printf("Удаление дубликатов из массива:<br>"); print_r($arr_new); echo "<br/>"; ?>
Результат вывода:
Прежде чем преобразовать массив: //オリジナルの配列 Массив ( [0] => Array ( [name] => james [age] => 30 ) [1] => Array ([name] => susu [age] => 26 ) [2] => Array ( [name] => james [age]=> 30 ) [new] => Array ( [name] => kube [age] => 37 ) [list] =>Array ( [name] => kube [age] => 27 ) ) After split the array: //Array after splitting Array ( [0] => james,30 [1] => susu,26 [2] => james,30 [new] =>kube,37 [list] => kube,27 ) Duplicate removal of the array: //Array after removal of duplicates Array ( [0] => Array ( [name] => james [age] => 30 ) [1] => Array ([name] => susu [age] => 26 ) [new] => Array ( [name] => kube [age]=> 37 ) [list] => Array ( [name] => kube [age] => 27 ) )
2、 Remove duplicate items from the one-dimensional array inside the two-dimensional array due to a unique key value:
Remove duplicates for a specific key value
<?php $arr= array(……); //Same two-dimensional array as above functionsecond_array_unique_bykey($arr, $key){ $tmp_arr = array(); foreach($arr as $k => $v) { if(in_array($v[$key], $tmp_arr)) //Search if $v[$key] exists in the $tmp_arr array, if it exists return true { unset($arr[$k]); //Destroy a variable If the value exists in $tmp_arr, delete this value } else { $tmp_arr[$k] = $v[$key]; //Place different values in this array for saving } } //ksort($arr); //ksort function sorts the array (retains the original key value key) sort does not retain key value return $arr; } $key = 'name'; $arr_key = second_array_unique_bykey($arr, $key); printf("As for the givenkey->%s:<br>", $key); print_r($arr_key); echo "<br/>"; ?>
Результат вывода:
Что касается предоставленного ключа->name: Array ( [0] => Array ( [name] => james [age] => 30 ) [1] => Array ([name] => susu [age] => 26 ) [new] => Array ( [name] => kube [age]=> 37 ) )
PS: На нашем сайте также есть два онлайн-инструмента для удаления дублирующего текста, которые мы рекомендуем к использованию:
Онлайн-инструмент для удаления дублирующихся элементов:
http://tools.jb51.net/code/quchong
Онлайн-инструмент для удаления дублирующего текста:
http://tools.jb51.net/aideddesign/txt_quchong
Дополнительную информацию о PHP можно найти в наших разделах: «Полное руководство по операциям с массивами (Array) PHP», «Обзор распространенных алгоритмов и методов PHP», «Суммарное руководство по использованию строк (string) в PHP», «Суммарное руководство по распространенным функциям и методам PHP», «Суммарное руководство по обработке ошибок и исключений PHP», «Введение в основы синтаксиса PHP», «Введение в面向 объектное программирование на PHP», «Введение в работу с базами данных MySQL на PHP» и «Обзор распространенных методов работы с базами данных».
Надеюсь, что описание в этой статье поможет вам в программировании на PHP.
Заявление: содержимое этой статьи взято из интернета, авторское право принадлежит автору, материал был предложен и загружен пользователями интернета, сайт не имеет права собственности, материал не был отредактирован вручную, и сайт не несет ответственности за связанные с этим юридические обязательства. Если вы обнаружите подозрительное содержимое о нарушении авторских прав, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (при отправке письма замените # на @) для жалоб,并提供相关证据. При подтверждении, сайт немедленно удалит涉嫌侵权的内容.