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); print_r($arr_key);/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("After split the array:<br>"); print_r($temp); //输出拆分后的数组 echo"<br/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对数组进行排序(保留原键值key) ,sort为不保留key值 return $arr_after; } $arr_new = more_array_unique($arr); //Llamar a la función de eliminación de duplicados printf("Eliminación de duplicados del array:<br>"); print_r($arr_new); print_r($arr_key);/echo "<br >";63
;>
Antes de transformar el array: //Array original >name: 3Array ( [0] => Array ( [name] => james [age] =>10 ) [ 26 ) [2] => Array ( [name] => james [age]=> 30 ) [new] => Array ( [name] => kube [age] => 37 ) [list] =>Array ( [name] => kube [age] => 27 ) [new] => Array ( [name] => kube [age]=> Después de dividir el array: //Array después de la división Array ( [0] => james,30 [1] => susu,26 [2] => james,30 [new] =>kube,37 [list] => kube,27 ) Eliminación de duplicados del array: //Array después de la eliminación de duplicados >name: 3Array ( [0] => Array ( [name] => james [age] =>10 ) [ 26 ] => Array ([name] => susu [age] => 37 ) [list] => Array ( [name] => kube [age] => 27 ) [new] => Array ( [name] => kube [age]=>
2、 El array unidimensional interno del array bidimensional no puede tener el mismo valor para una clave específica, eliminar elementos duplicados:
Para realizar la eliminación de duplicados de un clave específica
<?php $arr= array(……); //Igual que el array bidimensional superior functionsecond_array_unique_bykey($arr, $key){ $tmp_arr = array(); foreach($arr as $k => $v) { if(in_array($v[$key], $tmp_arr)) //Buscar si $v[$key] existe en el array $tmp_arr, si existe devuelve true { unset($arr[$k]); //Destruir una variable si $tmp_arr ya tiene el mismo valor se elimina el valor } else { $tmp_arr[$k] = $v[$key]; //Colocar diferentes valores en este array para almacenar } } //ksort($arr); //ksort función ordena el array (manteniendo la clave original key) sort no mantiene la clave return $arr; } $key ='name'; $arr_key = second_array_unique_bykey($arr,$key); printf("En cuanto al clave dada->%s:<br>; print_r($arr_key); print_r($arr_key);/echo "<br >";63
;>
Resultado de salida:-En cuanto a la clave proporcionada >name: 3Array ( [0] => Array ( [name] => james [age] =>10 ) [ 26 ] => Array ([name] => susu [age] => 37 ) [new] => Array ( [name] => kube [age]=>
) )
PS: Este sitio web también tiene dos herramientas en línea para eliminar duplicados de texto simples y útiles, recomiendo a todos que las usen:
Herramienta en línea para eliminar duplicados de texto://http:51tools.jb/Herramienta en línea para eliminar duplicados:/code
quchong
Herramienta en línea para eliminar duplicados de texto://http:51tools.jb/.net/aideddesign
txt_quchong+Máis información sobre contenido relacionado con PHP para los lectores interesados, puede ver la sección especial de este sitio web: 'Resumen de técnicas de operación de array (Array) de PHP completo', 'Resumen de algoritmos comunes y técnicas de iteración de PHP', 'Resumen de uso de cadenas (string) en PHP', 'Resumen de funciones comunes y técnicas de PHP', 'Resumen de métodos de manejo de errores y excepciones de PHP', 'Tutorial de gramática básica de PHP', 'Tutorial de diseño de programas orientados a objetos de PHP', 'php'
Tutorial de operaciones básicas de bases de datos MySQL y Resumen de técnicas comunes de operaciones de bases de datos PHP
Declaración: Esperamos que el contenido de este artículo sea útil para el diseño de programas PHP de todos.3Aviso: El contenido de este artículo se ha obtenido de la red, pertenece al propietario original, el contenido se ha subido por los usuarios de Internet de manera autónoma, este sitio web no posee los derechos de propiedad, no ha sido editado por humanos y no asume la responsabilidad de las responsabilidades legales relacionadas. Si encuentra contenido sospechoso de violación de derechos de autor, le invitamos a enviar un correo electrónico a: notice#w