In PHP, there is an availablefunctionfordeletingduplicate elements in an array, which isarray_unique(), But it is not the most efficient method. Using thearray_flip() function will be about five times faster than array_uniqure().
The method is as follows:
$arr = array(…………);//Suppose there is an array of 10,000 elements with repeated elements.
$arr = array_flip(array_flip($arr)); //This will remove duplicate elements.
What the hell is going on? Let’s look at the function of array_flip(): array_flip() is used to exchange the key and value of each element of an array, such as:
$arr1 = array ("age" => 30, "name" => ; "Happy Garden");
$arr2 = array_flip($arr1); //$arr2 is array(30 => "age", "Happy Garden" => "name");
In In PHP arrays, different elements are allowed to take the same value, but the same key name is not allowed to be used by different elements, such as:
$arr1 = array ("age" => 30, "name" = > "Happy Garden", "age" => 20); "age" => 20 will replace "age" => 30
$arr1 = array ("name" => "Happy Garden ", "age" => 45);
Here $arr1 and $arr2 are equal.
So, we can know why array_flip(array_flip($arr)) can delete duplicate elements in the array. First, the value in $arr will become a key name, because the values are repeated. After becoming a key name, these repeated values will become duplicate key names. The PHP engine will delete the duplicate key names and only keep the last one. . For example:
$arr1 = array ("age" => 30, "name" => "Happy Park", "age" => 20);
$arr1 = array_flip($arr1); //$arr1 becomes array("Happy Garden" => "name", 20 => "age");
//Restore the key name and value of $arr1:
$ arr1 = array_flip($arr1);
The above code can be written more concisely: $arr1 = array_flip(array_flip($arr1));
The above is the detailed content of php array_flip (detailed explanation of function to delete duplicate elements from array). For more information, please follow other related articles on the PHP Chinese website!