ホームページ > バックエンド開発 > PHPチュートリアル > PHPの配列重複排除方法のまとめ

PHPの配列重複排除方法のまとめ

WBOY
リリース: 2016-06-20 13:05:01
オリジナル
1054 人が閲覧しました

配列内の重複項目の削除

1 次元配列の重複:

array_unique 関数を使用するだけです。使用例は次のとおりです。

 <?php
   $aa=array("apple","banana","pear","apple","wail","watermalon");
   $bb=array_unique($aa);
   print_r($bb);
?>
ログイン後にコピー

結果は次のようになります: Array ( [0] => apple [1] => Banana [2] => pear [4] => wail [5] => Watermalon ) 。

2 次元配列の重複:

2 次元配列については、2 つの状況について説明します。1 つは、特定のキー名の値を繰り返すことができないため、重複を削除する場合です。もう 1 つは、内部の 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(&#39;id&#39; => 123, &#39;name&#39; => &#39;张三&#39;),
array(&#39;id&#39; => 123, &#39;name&#39; => &#39;李四&#39;),
array(&#39;id&#39; => 124, &#39;name&#39; => &#39;王五&#39;),
array(&#39;id&#39; => 125, &#39;name&#39; => &#39;赵六&#39;),
array(&#39;id&#39; => 126, &#39;name&#39; => &#39;赵六&#39;)
);
$key = &#39;id&#39;;
assoc_unique(&$aa, $key);
print_r($aa);
?>
ログイン後にコピー
表示される結果は次のとおりです: Array ( [0] => Array ( [id] => 123 [name] => Zhang San) [1] => Array ( [id] => 124 [名前 ] => 王呉) [2] => 配列 ( [id] => 125 [名前] => 趙劉) [3] => 配列 ( [id] => 126 [名前] = > 趙劉) )

㈡内部の一次元配列は完全に同じにはならないため、重複した項目は削除されます

表示結果: Array ( [0] => Array ( [0] => 123 [1] => Zhang San) [1] => Array ( [0] => 123 [1] =>李思) [2] => 配列 ( [0] => 124 [1] => 王呉) [4] => 配列 ( [0] => 126 [1] => ; 趙劉) )
<?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(&#39;id&#39; => 123, &#39;name&#39; => &#39;张三&#39;),
array(&#39;id&#39; => 123, &#39;name&#39; => &#39;李四&#39;),
array(&#39;id&#39; => 124, &#39;name&#39; => &#39;王五&#39;),
array(&#39;id&#39; => 123, &#39;name&#39; => &#39;李四&#39;),
array(&#39;id&#39; => 126, &#39;name&#39; => &#39;赵六&#39;)
);
$bb=array_unique_fb($aa);
print_r($bb)
?>
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート