PHP 言語では、配列は非常に一般的なデータ構造です。ただし、開発プロセス中に、アレイの重複排除が必要なシナリオに遭遇することがよくあります。このとき、PHPに用意されているarray_unique関数が便利です。
array_unique 関数は、配列内の重複した値を削除するために使用される関数です。その使用法は非常に簡単で、配列をパラメータとして受け取り、重複を排除した配列を返すことができます。
次に、array_unique 関数の使用法を詳しく紹介します。
最も基本的な使用法は、単に配列を渡すことです。はい、以下に示すように:
$arr = array('a', 'b', 'c', 'a', 'b'); $newArr = array_unique($arr); print_r($newArr);
出力結果は次のとおりです:
Array ( [0] => a [1] => b [2] => c )
元の配列内の重複した値「a」と「b」が削除されていることがわかります。 。
多次元配列の重複排除が必要な場合は、array_unique 関数を使用することもできますが、 array_unique 関数は単純なものしかできません。これは 1 次元配列を処理するため、多次元配列を処理するにはいくつかのトリックを使用する必要があります。
たとえば、次の多次元配列の場合、重複排除する必要があります:
$arr = array( array('a', 'b', 'c'), array('a', 'd', 'e'), array('a', 'b', 'c'), );
重複排除処理には次のコードを使用できます:
$tempArray = array(); foreach($arr as $key=>$value){ $tempArray[$key] = serialize($value); } $tempArray = array_unique($tempArray); foreach($tempArray as $key=>$value){ $tempArray[$key] = unserialize($value); } print_r($tempArray);
出力結果
Array ( [0] => Array ( [0] => a [1] => b [2] => c ) [1] => Array ( [0] => a [1] => d [2] => e ) )
ご覧のとおり、重複した配列が削除されています。
より複雑な重複排除要件を達成するために、カスタム比較関数が必要になる場合があります。現時点では、array_filter 関数を使用してこれを実現できます。
たとえば、次のコードは、指定されたキー値に従って重複排除を実現できます:
$arr = array( array('name' => 'Tom', 'age' => 20), array('name' => 'Jack', 'age' => 22), array('name' => 'Tom', 'age' => 25), ); function compare($v1, $v2){ return $v1['name'] == $v2['name']; } $newArr = array(); foreach($arr as $value){ if(! in_array($value, $newArr, true)){ $newArr[] = $value; } } print_r($newArr);
出力結果は次のとおりです:
Array ( [0] => Array ( [name] => Tom [age] => 20 ) [1] => Array ( [name] => Jack [age] => 22 ) )
次に従って重複が排除されていることがわかります。 「名前」の値。
概要
PHP の array_unique 関数は、非常に便利な重複排除関数です。単純に 1 次元配列の重複を排除できますが、いくつかのテクニックを使用して多次元配列を処理することもできます。この問題は、比較関数をカスタマイズしてより複雑な重複排除要件を達成することによっても解決できます。開発プロセス中、配列の重複を正確かつ迅速に排除すると、プログラムの効率と開発効率が向上するため、開発者は array_unique 関数の正しい使用法を習得する必要があります。
以上がPHP で array_unique 関数を使用して重複した配列を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。