-
- $aa=array("リンゴ","バナナ","梨","リンゴ","泣き叫ぶ","ウォーターマロン");
- $bb=array_unique($aa);
- print_r($bb);
- ?>
コードをコピー
出力結果:
配列 ( [0] => リンゴ [1] => バナナ [2] => 梨 [4] => 泣き声 [5] => スイカ ) 。
2 番目、PHP の 2 次元配列の複製:
2 次元配列の場合、2 つの状況について説明します。1 つは、特定のキー名の値を繰り返すことができず、重複が削除されるためです。
もう 1 つは、内部 1 次元配列がまったく同じであることはできないため、重複を削除することです。
例1、あるキー名の値は重複できないため、重複したものを削除します。
コード:
-
- function assoc_unique($arr, $key)
- {
- $tmp_arr = array();
- foreach($arr as $k => $v)
- {
- if(in_array ($v[$key], $tmp_arr))//$tmp_arr 配列に $v[$key] が存在するかどうかを検索し、存在する場合は true を返します
- { // bbs.it-home.org
- 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' => '趙劉'),
- 配列( 'id' => 126, 'name' => '赵六')
- );
- $key = 'id';
- 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 [名前] => 趙劉 ) )
例 2: 内部 1 次元配列は完全に同じにすることはできないため、重複を削除します。
コード:
-
- function array_unique_fb($array2D){
- foreach ($array2D as $v){
- $v = join(",",$v) //次元削減も使用可能implode、一次元配列をカンマでつながれた文字列に変換します
- $temp[] = $v;
- } // bbs.it-home.org
- $temp = array_unique($temp); // 重複する文字を削除します String 、つまり、繰り返される 1 次元配列です
- 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)
- ? >
コードをコピー
出力結果:
配列 ( [0] => 配列 ( [0] => 123 [1] => チャン・サン) [1] => 配列 ( [0] => 123 [1] => 李思) [2] => 配列( [0] => 124 [1] => 王呉) [4] => 配列 ( [0] =>
126 [1] => 趙劉 ) ) |