要对二维数组进行去重和重组,可以使用以下代码:
function arrayUnique($array, $key) {
$tempArray = [];
$resultArray = [];
foreach($array as $value) {
if (!in_array($value[$key], $tempArray)) {
$tempArray[] = $value[$key];
$resultArray[] = $value;
}
}
return $resultArray;
}
$array = [
['id' => 1, 'name' => 'John'],
['id' => 2, 'name' => 'Jane'],
['id' => 1, 'name' => 'John'],
['id' => 3, 'name' => 'Mike']
];
$uniqueArray = arrayUnique($array, 'id');
print_r($uniqueArray);
这段代码定义了一个名为arrayUnique
的函数,它接受两个参数:要去重和重组的二维数组$array
,以及用于判断重复的键名$key
。函数首先创建一个临时数组$tempArray
用于存储已经出现过的键值,然后创建一个结果数组$resultArray
用于存储去重后的结果。接下来,函数遍历原始数组$array
,对于每个元素,使用in_array
函数判断其键值是否已经存在于临时数组中,如果不存在,则将其添加到临时数组和结果数组中。最后,函数返回结果数组。
在示例中,定义了一个二维数组$array
,其中包含了一些重复的元素。然后调用arrayUnique
函数,传入$array
和要去重的键名'id'
。函数返回的结果数组$uniqueArray
即为去重后的结果。最后,使用print_r
函数打印出结果数组。
运行以上代码,输出结果如下:
Array
(
[0] => Array
(
[id] => 1
[name] => John
)
[1] => Array
(
[id] => 2
[name] => Jane
)
[3] => Array
(
[id] => 3
[name] => Mike
)
)
可以看到,重复的元素已经被去除,只保留了每个不重复的元素。
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站