Home > Backend Development > PHP Problem > How to clear the same numbers in php array

How to clear the same numbers in php array

PHPz
Release: 2023-04-27 10:31:10
Original
485 people have browsed it

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);
?>
Copy after login

Execute the above code and you can get the output:

Array
(
    [0] => 1
    [2] => 2
    [3] => 3
    [4] => 4
    [6] => 5
)
Copy after login

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);
?>
Copy after login

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
)
Copy after login

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 &#39;使用 array_unique() 函数执行时间:&#39;, $end_time - $start_time, &#39; 秒&#39;;

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 &#39;使用循环遍历执行时间:&#39;, $end_time - $start_time, &#39; 秒&#39;;
?>
Copy after login

Executing the above code, you can get the following output:

使用 array_unique() 函数执行时间:0.011376142501831 秒
使用循环遍历执行时间:15.46102309227 秒
Copy after login

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!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template