この記事では、2次元配列の重複要素を削除するPHPの具体的な実装方法を中心に紹介します!
前回の記事[PHPで配列内の重複要素を削除するには? ] では、PHP で通常の 1 次元配列を削除する方法を紹介していますので、必要な方はまず参照してください。
簡単に言えば、2 次元配列は配列の配列です。要素を選択するには 2 つのインデックスが必要です。
以下では、2次元配列の重複要素を削除する方法を具体的なコード例を通して詳しく紹介していきます!
<?php /** * PHP删除二维数组中的重复元素 */ // 对二维数组进行去重复 function more_array_unique($arr) { //先把二维数组中的内层数组的键值记录在在一维数组中 foreach ($arr[0] as $k => $v) { $arr_inner_key[] = $k; } foreach ($arr as $k => $v) { //降维 用implode()也行 $v = join(",", $v); //保留原来的键值 $temp[]即为不保留原来键值 $temp[$k] = $v; } //去重:去掉重复的元素 $temp = array_unique($temp); foreach ($temp as $k => $v) { //拆分后的重组 如:Array( [0] => 张三 [1] => 18 ) $a = explode(",", $v); //将原来的键与值重新合并 $arr_after[$k] = array_combine($arr_inner_key, $a); } return $arr_after; } $arr = [ ['name' => '张三', 'age' => 18], ['name' => 'Tom', 'age' => 19], ['name' => 'Tom', 'age' => 19], ['name' => '张三', 'age' => 50], ['name' => '王小二', 'age' => 30], ]; echo "<pre class="brush:php;toolbar:false">"; print_r(more_array_unique($arr));
このコードでは、$arr の 2 次元配列を定義します。これには、「Zhang San」と「Tom」という 2 つの繰り返し要素のペアが含まれていますが、それらの年齢は異なります。
array_unique() 関数は 1 次元配列にのみ適用されるため、2 次元配列の場合は独自に関数メソッドを定義する必要がありますが、array_unique() 関数も使用できることを誰もが知っているはずです。
上記のコード例と同様に、2 次元配列内の重複要素を削除する more_array_unique メソッドを定義しました。
注:
join 関数は、この関数の別名: implode() です。
array_combine 関数: 1 つの配列の値をキー名として使用し、別の配列の値をその値として使用して、配列を作成することを意味します。
array_unique 関数: 削除配列内の値が重複します。
最終的にブラウザからアクセスし、二次元配列の重複要素を削除した結果は以下のようになります。
図に示すように、カスタマイズされた more_array_unique メソッドを使用して、有用な情報を保持しながら、2 次元配列から完全に重複する要素を削除します。
この記事は、PHP で 2 次元配列内の重複要素を削除する具体的な方法についての記事です。 困っている友人の役に立てば幸いです。
PHP についてさらに詳しく知りたい場合は、PHP 中国語 Web サイト PHP ビデオ チュートリアル を参照してください。誰でも参照して学ぶことができます。
以上がPHPで2次元配列内の重複した要素を削除するにはどうすればよいですか? (写真 + ビデオ)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。