PHP 2次元配列による重複除外方法【個々のキー値を保持する】
5072 ワード
本明細書の例では、PHP 2次元配列による重複項目の除去方法について説明する.皆さんの参考にしてください.具体的には以下の通りです.
次の2 D配列については、重さを除去する必要があります.
1、2次元配列の内部の1次元配列の値は完全に同じではなく、重複する項目を削除します.
コードは次のとおりです.
出力結果:
2、二次元配列の内部の一次元配列は、あるキー値が同じではないため、重複項目を削除する.
あるキー値に対して重量除去を行う
出力結果:
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プログラム設計に役立つことを願っています.
次の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プログラム設計に役立つことを願っています.