メソッドは次のとおりです:
$arr = array(…………);//繰り返し要素を含む 10,000 個の要素の配列があると仮定します。
$arr = array_flip(array_flip($arr)); //これにより、重複した要素が削除されます。
いったい何が起こっているのでしょうか? array_flip() の役割を見てみましょう: array_flip() は、次のように配列の各要素のキーと値を交換するために使用されます:
$arr1 = array ("age" => 30, " name" => ; "ハッピー ガーデン");
$arr2 = array_flip($arr1); //$arr2 は array(30 => "年齢", "ハッピー ガーデン" => "名前");
PHP 配列では、異なる要素が同じ値を取ることができますが、同じキー名を異なる要素で使用することはできません。例:
$arr1 = array ("age" => 30, "名前" = > "ハッピー ガーデン", "年齢" => 20 は "年齢" => 30 に置き換えられます
$arr1 = array ("名前" =>) Happy Garden" ", "age" => 45);
ここでは $arr1 と $arr2 は等しいです。
これで、array_flip(array_flip($arr)) が配列内の重複要素を削除できる理由がわかりました。まず、$arr の値がキー名になります。キー名になった後、これらの繰り返し値は重複したキー名になります。PHP エンジンは重複したキー名を削除し、最後のキー名のみを保持します。 1つ。 。例:
$arr1 = array ("年齢" => 30, "名前" => "ハッピーパーク", "年齢" => 20);
$arr1 = array_flip($arr1); $arr1 は array("Happy Garden" => "name", 20 => "age");
//$arr1 のキー名と値を復元します:
$ arr1 = array_flip($arr1 );
上記のコードはさらに簡潔に書くことができます: $arr1 = array_flip(array_flip($arr1));