Maison > développement back-end > tutoriel php > php 数组去重的方法参考(一维数组去重、二维数组去重)

php 数组去重的方法参考(一维数组去重、二维数组去重)

WBOY
Libérer: 2016-07-25 08:58:00
original
1430 Les gens l'ont consulté
本文介绍下,对php数组去除重复的方法,包括一维数组的去重、二维数组的去重。有需要的朋友参考下。

首先,来看一维数组重复项的去除方法。

使用array_unique函数,例如:

<?php
  $aa=array("apple","banana","pear","apple","wail","watermalon");
  $bb=array_unique($aa);
  print_r($bb);
  //by bbs.it-home.org
?>
Copier après la connexion

输出结果: Array ( [0] => apple [1] => banana [2] => pear [4] => wail [5] => watermalon ) 。

再来看下二维数组重复项的去除方法。

对于二维数组,要分两种情况讨论: 一种是因为某一键名的值不能重复,删除重复项; 另一种因为内部的一维数组不能完全相同,而删除重复项。

通过具体的例子加以说明。

1,因为某一键名的值不能重复,删除重复项。

<?php
 function assoc_unique($arr, $key)
  {
    $tmp_arr = array();
    foreach($arr as $k => $v)
   {
      if(in_array($v[$key], $tmp_arr))//搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true
     {
        unset($arr[$k]);
     }
   else {
       $tmp_arr[] = $v[$key];
     }
   }
 sort($arr); //sort函数对数组进行排序
 return $arr;
 }

 $aa = array(
 array('id' => 123, 'name' => '张三'),
 array('id' => 123, 'name' => '李四'),
 array('id' => 124, 'name' => '王五'),
 array('id' => 125, 'name' => '赵六'),
 array('id' => 126, 'name' => '赵六')
 );
 $key = 'id';
 assoc_unique(&$aa, $key);
 print_r($aa);
 //by bbs.it-home.org
?>
Copier après la connexion

输出结果: Array ( [0] => Array ( [id] => 123 [name] => 张三 ) [1] => Array ( [id] => 124 [name] => 王五 ) [2] => Array ( [id] => 125 [name] => 赵六 ) [3] => Array ( [id] => 126 [name] => 赵六 ) )

2,因内部的一维数组不能完全相同,而删除重复项

<?php
 function array_unique_fb($array2D){
      foreach ($array2D as $v){
          $v = join(",",$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
          $temp[] = $v;
      }
      $temp = array_unique($temp);    //去掉重复的字符串,也就是重复的一维数组
     foreach ($temp as $k => $v){
         $temp[$k] = explode(",",$v);   //再将拆开的数组重新组装
     }
     return $temp;
 }

 $aa = array(
 array('id' => 123, 'name' => '张三'),
 array('id' => 123, 'name' => '李四'),
 array('id' => 124, 'name' => '王五'),
 array('id' => 123, 'name' => '李四'),
 array('id' => 126, 'name' => '赵六')
 );
 $bb=array_unique_fb($aa);
 print_r($bb);
 //by bbs.it-home.org
?>
Copier après la connexion

输出结果:

Array ( [0] => Array ( [0] => 123 [1] => 张三 ) [1] => Array ( [0] => 123 [1] => 李四 ) [2] => Array ( [0] => 124 [1] => 王五 ) [4] => Array ( [0] => 126 [1] => 赵六 ) )


source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal