Home >Backend Development >PHP Problem >How to clear the same numbers in php array
In PHP, we often need to perform various operations on arrays, such as searching, sorting, and deduplication. The deduplication operation is to remove duplicate elements in the array. In the actual development process, we often encounter situations where we need to clear the same numbers. This article introduces how to use PHP arrays to remove duplicate numbers.
1. array_unique() function
There is an array_unique() function in PHP, which can be used to remove duplicate values from an array and return a new array. This function uses value comparison, that is, only elements with equal values are considered duplicates.
The following is a sample code using the array_unique() function to remove duplicates:
<?php //定义一个包含相同数字的数组 $array = array(1, 1, 2, 3, 4, 4, 5, 5, 5); //去重 $new_array = array_unique($array); //输出去重后的数组 print_r($new_array); ?>
Execute the above code and you can get the output:
Array ( [0] => 1 [2] => 2 [3] => 3 [4] => 4 [6] => 5 )
We can see that the repeated numbers has been cleared away, leaving only different numbers.
2. Use loop traversal to remove duplicates
In addition to using the array_unique() function, we can also use loop traversal to remove duplicates. The specific implementation is as follows:
<?php //定义一个包含相同数字的数组 $array = array(1, 1, 2, 3, 4, 4, 5, 5, 5); //去重 $new_array = array(); foreach ($array as $value) { if (!in_array($value, $new_array)) { $new_array[] = $value; } } //输出去重后的数组 print_r($new_array); ?>
In the above code, we use an empty array $new_array to store unique numbers. Then use a foreach loop to traverse the original array $array. If the current element is not in $new_array, add the current element to the $new_array array.
After executing the above code, you can get the same output as before:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
3. Performance comparison
The two methods for deduplication are mentioned above, then their performance How? Let's compare.
In order to compare the performance of the two methods, we defined an array containing 100,000 random numbers, then used the two methods to deduplicate it, and counted the execution time. The code is as follows:
<?php //1. 使用 array_unique() 函数 $array = array(); for ($i = 0; $i < 100000; $i++) { $array[] = rand(1, 100000); } $start_time = microtime(true); $new_array = array_unique($array); $end_time = microtime(true); echo '使用 array_unique() 函数执行时间:', $end_time - $start_time, ' 秒'; echo "\n"; //2. 使用循环遍历 $array = array(); for ($i = 0; $i < 100000; $i++) { $array[] = rand(1, 100000); } $start_time = microtime(true); $new_array = array(); foreach ($array as $value) { if (!in_array($value, $new_array)) { $new_array[] = $value; } } $end_time = microtime(true); echo '使用循环遍历执行时间:', $end_time - $start_time, ' 秒'; ?>
Executing the above code, you can get the following output:
使用 array_unique() 函数执行时间:0.011376142501831 秒 使用循环遍历执行时间:15.46102309227 秒
We can see that the execution efficiency of using the array_unique() function is much higher.
4. Summary
In actual development, in order to improve the execution efficiency of the program, we should try to use the built-in functions provided by PHP instead of writing loops and other codes ourselves for processing. For the problem of removing identical numbers from an array, using PHP's built-in array_unique() function is the simplest and most efficient method, while using loop traversal to remove duplicates will waste a lot of time and resources.
The above is the detailed content of How to clear the same numbers in php array. For more information, please follow other related articles on the PHP Chinese website!