Home >Backend Development >PHP Tutorial >PHP code to delete array and two-dimensional array values_PHP tutorial

PHP code to delete array and two-dimensional array values_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:54:50885browse

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 exactly 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 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 value is 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. . Such as:
$arr1 = array ("age" => 30, "name" => "Happy Garden", "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));

I wrote an article about array deduplication above, but it is limited to one-dimensional arrays. The following functions can be used with two-dimensional arrays:
Copy the code. The code is as follows:
//Remove duplicate values ​​from two-dimensional array

function array_unique_fb($array2D)
{
foreach ($array2D as $v)
{
$v = join(",",$v); //For dimensionality reduction, you can also use implode to convert a one-dimensional array into a string connected with commas
$temp[] = $v;
}
$temp = array_unique($temp); //Remove repeated strings, that is, repeated one-dimensional arrays
foreach ($temp as $k => $v)
{
$temp[$k] = explode(",",$v); //Reassemble the disassembled array
}
return $temp;
}

If you want to retain the key values ​​of the array, you can use the following function:
Copy the code. The code is as follows:
//Two-dimensional array removes duplicate values ​​and retains key values

function array_unique_fb($array2D)
{
foreach ($array2D as $k=>$v)
{
$v = join(",",$v); //For dimensionality reduction, you can also use implode to convert a one-dimensional array into a string connected with commas
$temp[$k] = $v;
}
$temp = array_unique($temp); //Remove repeated strings, that is, repeated one-dimensional arrays
foreach ($temp as $k => $v)
{
$array=explode(",",$v); //Reassemble the disassembled array
$temp2[$k]["id"] =$array[0];
$temp2[$k]["litpic"] =$array[1];
$temp2[$k]["title"] =$array[2];
$temp2[$k]["address"] =$array[3];
$temp2[$k]["starttime"] =$array[4];
$temp2[$k]["endtime"] =$array[5];
$temp2[$k]["classid"] =$array[6];
$temp2[$k]["ename"] =$array[7];
}
return $temp2;
}

That’s probably it.
Two-dimensional array deduplication
Copy the code. The code is as follows:

$arr = array(
array('id' => 1,'name' => 'aaa'),
array('id' => 2,'name' => 'bbb'),
array('id' => 3,'name' => 'ccc'),
array('id' => 4,'name' => 'ddd'),
array('id' => 5,'name' => 'ccc'),
array('id' => 6,'name' => 'aaa'),
array('id' => 7,'name' => 'bbb'),
);
function assoc_unique(&$arr, $key)
{
$rAr=array();
for($i=0;$i {
if(!isset($rAr[$arr[$i][$key]]))
{
$rAr[$arr[$i][$key]]=$arr[$i];
}
}
$arr=array_values($rAr);
}
assoc_unique(&$arr,'name');
print_r($arr);
?>


Use PHP’s built-in functions

Description


array array_unique (array $array)
array_unique() accepts an array as input and returns a new array without duplicate values.

Note that the key name remains unchanged. array_unique() sorts the values ​​first as strings, then retains only the first encountered key for each value, and then ignores all subsequent keys. This does not mean that the first occurrence of the same value in an unsorted array will be preserved.

Note: Two cells are considered the same if and only if (string) $elem1 === (string) $elem2. That is, when the expressions of the strings are the same. The first unit will be retained.


Example #1 array_unique() Example

$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
?>
The above example will output:

Array
(
[a] => green
[0] => red
[1] => blue
)


Example #2 array_unique() and type

$input = array(4, "4", "3", 4, 3, "3");
$result = array_unique($input);
var_dump($result);
?>
The above example will output:

array(2) {
[0] => int(4)
[2] => string(1) "3"
}

Related tutorials
http://www.bKjia.c0m/phper/php-function/34794.htm

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/632275.htmlTechArticleThe method is as follows: $arr = array();//Suppose there is an array of 10,000 elements with repetitions in it elements. $arr = array_flip(array_flip($arr)); //This will remove duplicate elements. What exactly is...
Statement:
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