多次元 PHP 配列内の重複要素を削除するには、array_unique() 関数またはカスタム再帰関数を使用できます。 array_unique() は内部配列を全体として処理しますが、カスタム再帰関数は配列を反復処理して要素ごとに検査します。実際の使用例では、これらのメソッドを使用して重複する電子メール アドレスを削除し、各ユーザーに 1 つの電子メールのみが送信されるようにすることができます。
#多次元 PHP 配列内の重複要素を削除する方法
#まえがき
多次元配列を扱う場合、要素の重複の問題が発生することがあります。これにより、データに一貫性がなくなり、分析が困難になる可能性があります。この記事では、多次元 PHP 配列から重複要素を効果的に削除するいくつかの方法を紹介します。メソッド
1 array_unique() 関数
array_unique() を使用します。 関数を使用して、1 次元配列内の重複要素を削除できます。引数として配列を受け取り、一意の要素を含む新しい配列を返します。
<?php $arr = array( array(1, 2, 3), array(3, 4, 5), array(1, 2, 6), ); $unique_arr = array_unique($arr); print_r($unique_arr); ?>
Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 3 ) [1] => Array ( [0] => 3 [1] => 4 [2] => 5 ) [2] => Array ( [0] => 1 [1] => 2 [2] => 6 ) )
array_unique() 関数は多次元配列から重複要素を削除しません。内部配列を再帰的に繰り返すことなく、全体として処理するだけです。
2. 再帰関数を使用する
多次元配列内の重複要素を再帰的に削除するには、カスタム関数を作成する必要があります。この関数は配列を反復処理し、要素ごとにチェックします。<?php function remove_duplicates($arr) { $unique_arr = array(); foreach ($arr as $sub_arr) { if (!in_array($sub_arr, $unique_arr)) { $unique_arr[] = $sub_arr; } } return $unique_arr; } ?>
$unique_arr = remove_duplicates($arr); print_r($unique_arr);
Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 3 ) [1] => Array ( [0] => 3 [1] => 4 [2] => 5 ) [2] => Array ( [0] => 1 [1] => 2 [2] => 6 ) )
実用的なケース
ユーザーの電子メール アドレスを含む多次元配列があるとします。各ユーザーに 1 つの電子メールのみが送信されるようにするには、重複する電子メール アドレスを削除する必要があります。これは、上記の方法のいずれかを使用して実現できます。array_unique() 関数を使用:
<?php $users = array( array('email' => 'john@example.com'), array('email' => 'mary@example.com'), array('email' => 'john@example.com'), ); $unique_users = array_unique($users, SORT_REGULAR); print_r($unique_users); ?>
再帰関数を使用:
<?php $users = array( array('email' => 'john@example.com'), array('email' => 'mary@example.com'), array('email' => 'john@example.com'), ); $unique_users = remove_duplicates($users); print_r($unique_users); ?>
Array ( [0] => Array ( [email] => john@example.com ) [1] => Array ( [email] => mary@example.com ) )
以上が多次元PHP配列の重複要素を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。