ホームページ >バックエンド開発 >PHPチュートリアル >PHP の 2 次元配列から重複項目を削除する場合の注意事項 - PHP の 2 次元配列の他の処理 (並べ替え、変換、空白の削除など) と比較できます。
PHP は 1 次元配列の重複を削除する array_unique 関数を提供しますが、実際のプロジェクト開発では、データベース選択からクエリされる配列は 2 次元であることがよくあります。重複を削除する独自の関数を定義します。
アイデア:
1. まず 2 次元配列のキー名を取得し、それを配列に保存します (keyname_Arr という名前であるとします)
2. 次に区切り文字として記号を使用します ( '-' など)、2 次元配列のキー値を文字列に結合して一時配列を生成します。
3. 次に、[array_unique() 関数] を使用して、生成された一時配列を比較し、
4. 次に、複製した配列を 2 次元配列に再構築します。
4 4 4 4 は、Foreach () で [Explode () 関数] を使用し、文字列を逆アセンブルします。 '-' 分割されたシンボル; 分割文字列によって形成された [新しい一時配列 tempnew] に向かって、foreach ($tempnew as $tempk =>$tempv) を使用します。 $tempk ] ] = tempv ;
6最後に、$output は重複を削除した後の 2 次元配列になります。
実際のコードを理解しましょう:
$keyname_Arr= array_keys(end($resource_arr)); //存储内层数组的键名<br /><br />//使用'-'作为分隔将数组拼接成字符串<br />foreach ($resource_arr as $v){<br /> $v = join("-",$v);<br /> $temp[] = $v;<br />}<br /><br />//去掉重复的字符串,也就是重复的一维数组<br />$temp = array_unique($temp);<br /><br />//再将拆开的数组重新组装<br />foreach ($temp as $k => $v)<br />{<br /> $tempnew = explode("-",$v);//拆分去重之后的字符串<br /><br /> foreach($tempnew as $tempkey => $tempval)<br /> $output[$k][$keyname_Arr[$tempkey]] = $tempval;<br />}
Cion 2016/05/03 の夜に記録されました