PHP 2次元配列による重複除外方法【個々のキー値を保持する】

5072 ワード

本明細書の例では、PHP 2次元配列による重複項目の除去方法について説明する.皆さんの参考にしてください.具体的には以下の通りです.
次の2 D配列については、重さを除去する必要があります.

$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、2次元配列の内部の1次元配列の値は完全に同じではなく、重複する項目を削除します.
コードは次のとおりです.

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:
"); // print_r($arr); echo "
"; 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:
"); print_r($temp); // echo"
"; $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); // printf("Duplicate removal of the array:
"); print_r($arr_new); echo "
"; ?>

出力結果:

Before tranform the array:  //    
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 ) )
After split the array: //     
Array ( [0] => james,30 [1] => susu,26 [2] => james,30 [new] =>kube,37 [list] => kube,27 )
Duplicate removal of thearray: //     
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、二次元配列の内部の一次元配列は、あるキー値が同じではないため、重複項目を削除する.
あるキー値に対して重量除去を行う

 $v)
  {
    if(in_array($v[$key], $tmp_arr))  //  $v[$key]   $tmp_arr     ,     true
    {
      unset($arr[$k]); //         $tmp_arr             
    }
    else {
      $tmp_arr[$k] = $v[$key]; //             
    }
  }
  //ksort($arr); //ksort         (     key) sort    key 
  return $arr;
  }
  $key ='name';
  $arr_key = second_array_unique_bykey($arr,$key);
  printf("As for the givenkey->%s:
",$key); print_r($arr_key); echo "
"; ?>

出力結果:

As for the given key->name:
Array ( [0] => Array ( [name] => james [age] => 30 ) [1] => Array ([name] => susu [age] => 26 ) [new] => Array ( [name] => kube [age]=> 37 ) )


PS:当サイトには2つの比較的簡単で実用的なオンラインテキストの重複ツールがあります.
重複除外ツール:http://tools.jb51.net/code/quchong
オンラインテキストの繰り返しツール:http://tools.jb51.net/aideddesign/txt_quchong
PHPに関する内容についてもっと兴味のある読者は、「PHP配列(Array)操作技巧大全」、「PHP常用遍歴アルゴリズムと技巧総括」、「php文字列(string)用法総括」、「php常用関数と技巧総括」、「PHP错误と异常処理方法総括」、「PHP基本文法入门教程」、「phpオブジェクト向けプログラミング入門チュートリアル」、「php+mysqlデータベース操作入門チュートリアル」および「php一般データベース操作テクニック要約」
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.