PHP 二维数组去重
简介
在 PHP 中,二维数组是一种包含其他数组元素的数组。有时,二维数组可能包含重复的元素。为了获得不重复的元素列表,需要对数组执行去重操作。
去重方法
1. array_unique() 函数
`array_unique()` 函数可用于去除数组中的重复元素。它接受一个多维数组作为参数,并返回一个不包含重复元素的新数组。```php $array = array(array(1, 2, 3),array(4, 5, 6),array(1, 2, 3),array(7, 8, 9) );$uniqueArray = array_unique($array, SORT_REGULAR);print_r($uniqueArray); ```输出:``` Array ([0] => Array([0] => 1[1] => 2[2] => 3)[1] => Array([0] => 4[1] => 5[2] => 6)[3] => Array([0] => 7[1] => 8[2] => 9) ) ```
2. array_map() 函数
`array_map()` 函数可用于对二维数组中的每个元素应用一个回调函数。通过使用它,可以创建一个包含不重复元素的新数组。```php $array = array(array(1, 2, 3),array(4, 5, 6),array(1, 2, 3),array(7, 8, 9) );$uniqueArray = array_map('array_unique', $array);print_r($uniqueArray); ```输出:``` Array ([0] => Array([0] => 1[1] => 2[2] => 3)[1] => Array([0] => 4[1] => 5[2] => 6)[2] => Array([0] => 1[1] => 2[2] => 3)[3] => Array([0] => 7[1] => 8[2] => 9) ) ```
3. 手动循环
也可以使用手动循环来去除二维数组中的重复元素。```php $array = array(array(1, 2, 3),array(4, 5, 6),array(1, 2, 3),array(7, 8, 9) );$uniqueArray = array();foreach ($array as $subArray) {foreach ($subArray as $element) {if (!in_array($element, $uniqueArray)) {$uniqueArray[] = $element;}} }print_r($uniqueArray); ```输出:``` Array ([0] => 1[1] => 2[2] => 3[3] => 4[4] => 5[5] => 6[6] => 7[7] => 8[8] => 9 ) ```
结论
在 PHP 中对二维数组去重有多种方法。选择哪种方法取决于数组的大小和所需的性能要求。在大多数情况下,`array_unique()` 函数是去除重复元素的最快捷最简单的方法。
**PHP 二维数组去重****简介**在 PHP 中,二维数组是一种包含其他数组元素的数组。有时,二维数组可能包含重复的元素。为了获得不重复的元素列表,需要对数组执行去重操作。**去重方法****1. array_unique() 函数**`array_unique()` 函数可用于去除数组中的重复元素。它接受一个多维数组作为参数,并返回一个不包含重复元素的新数组。```php $array = array(array(1, 2, 3),array(4, 5, 6),array(1, 2, 3),array(7, 8, 9) );$uniqueArray = array_unique($array, SORT_REGULAR);print_r($uniqueArray); ```输出:``` Array ([0] => Array([0] => 1[1] => 2[2] => 3)[1] => Array([0] => 4[1] => 5[2] => 6)[3] => Array([0] => 7[1] => 8[2] => 9) ) ```**2. array_map() 函数**`array_map()` 函数可用于对二维数组中的每个元素应用一个回调函数。通过使用它,可以创建一个包含不重复元素的新数组。```php $array = array(array(1, 2, 3),array(4, 5, 6),array(1, 2, 3),array(7, 8, 9) );$uniqueArray = array_map('array_unique', $array);print_r($uniqueArray); ```输出:``` Array ([0] => Array([0] => 1[1] => 2[2] => 3)[1] => Array([0] => 4[1] => 5[2] => 6)[2] => Array([0] => 1[1] => 2[2] => 3)[3] => Array([0] => 7[1] => 8[2] => 9) ) ```**3. 手动循环**也可以使用手动循环来去除二维数组中的重复元素。```php $array = array(array(1, 2, 3),array(4, 5, 6),array(1, 2, 3),array(7, 8, 9) );$uniqueArray = array();foreach ($array as $subArray) {foreach ($subArray as $element) {if (!in_array($element, $uniqueArray)) {$uniqueArray[] = $element;}} }print_r($uniqueArray); ```输出:``` Array ([0] => 1[1] => 2[2] => 3[3] => 4[4] => 5[5] => 6[6] => 7[7] => 8[8] => 9 ) ```**结论**在 PHP 中对二维数组去重有多种方法。选择哪种方法取决于数组的大小和所需的性能要求。在大多数情况下,`array_unique()` 函数是去除重复元素的最快捷最简单的方法。