Home > Article > Backend Development > How to delete identical values in an array in php
PHP is a very popular programming language in Web development, and it is very common to use arrays in Web development. But when it comes to deleting identical values in an array, sometimes you encounter situations. In this article, we will introduce how to delete identical values in an array using PHP programming language.
Review the basics of PHP arrays. In PHP, an array is a special type of variable used to store a set of values (elements). Each element has a key and a value. Keys can be integers or strings but values can be any type of data such as numbers, strings, objects and more.
PHP provides many useful array functions to process and operate arrays. Function like array_unique() can remove duplicate elements in an array, but sometimes just removing duplicate elements is not enough, we need to remove duplicate values from the array (even if they appear multiple times in the array). Let's see how to do this.
First, we have an array containing duplicate elements. Below is an example array.
$numbers = array(1, 2, 3, 4, 3, 5, 6, 2, 7, 8, 6, 1);
Our goal is to delete from the array Same values, so we need to find those values first. In order to do this we can use the array_count_values() function in PHP. This function will count the occurrences of each value in the array and return a new array containing the values and their occurrences.
The following is a sample code that uses the array_count_values() function to count the number of occurrences of each value in an array.
$counted = array_count_values($numbers);
print_r($counted);
The output results are as follows:
Array
(
[1] => 2 [2] => 2 [3] => 2 [4] => 1 [5] => 1 [6] => 2 [7] => 1 [8] => 1
)
As you can see from the output, each value in the array and the number of their occurrences are calculated. Next, we need to remove the values that occur more than 1 from the original array.
For this, we need to use the foreach loop in PHP. We will loop through the new calculated array and delete the same values in it. Below is sample code.
foreach($counted as $key => $value){
if($value > 1){ for($i=0;$i<$value-1;$i++){ $keyToDelete = array_search($key, $numbers); unset($numbers[$keyToDelete]); } }
}
Let’s see how the above code works. We use a foreach loop to iterate over the calculated new array. If a value appears twice or more, we will use a for loop to remove all other duplicate values in the array. We use the array_search() function to find the keys to delete in the array and use the unset() function to delete them from the array.
Now, let's print the new array to make sure all the identical values have been removed.
print_r($numbers);
The output results are as follows:
Array
(
[0] => 1 [1] => 2 [2] => 3 [3] => 4 [5] => 5 [6] => 6 [8] => 7 [9] => 8
)
We can see By now, all identical values in the original array have been removed.
In web development, especially when dealing with forms and databases, deleting the same value in an array is a very necessary and useful operation. Using PHP programming language we can easily achieve this.
The above is the detailed content of How to delete identical values in an array in php. For more information, please follow other related articles on the PHP Chinese website!