我想删除以下数组的重复项。我想按第一个值分组,然后重建索引。
即
Array
(
[0] => Array
(
[title] => California
[state_id] => 1
)
[1] => Array
(
[title] => California
[state_id] => 1
)
[2] => Array
(
[title] => New Mexico
[state_id] => 2
)
[3] => Array
(
[title] => Washington
[state_id] => 3
)
[4] => Array
(
[title] => Montana
[state_id] => 4
)
[5] => Array
(
[title] => Montana
[state_id] => 4
)
)
要
Array
(
[0] => Array
(
[title] => California
[state_id] => 1
)
[2] => Array
(
[title] => New Mexico
[state_id] => 2
)
[3] => Array
(
[title] => Washington
[state_id] => 3
)
[4] => Array
(
[title] => Montana
[state_id] => 4
)
)
并重建密钥
Array
(
[0] => Array
(
[title] => California
[state_id] => 1
)
[1] => Array
(
[title] => New Mexico
[state_id] => 2
)
[2] => Array
(
[title] => Washington
[state_id] => 3
)
[3] => Array
(
[title] => Montana
[state_id] => 4
)
)
答案 0 :(得分:6)
$array = array_values(array_combine(array_map(function ($i) { return $i['title']; }, $array), $array));
即
title
密钥(array_map
)array_combine
),这将对数组进行重复数据删除(键必须是唯一的)array_values
运行结果,该结果会丢弃密钥细分:
$keys = array_map(function ($i) { return $i['title']; }, $array);
$deduped = array_combine($keys, $array);
$result = array_values($deduped);
对于PHP 5.2-你需要编写这样的匿名回调函数:
array_map(create_function('$i', 'return $i["title"];'), $array)
答案 1 :(得分:1)
在这结束时,你有你想要的阵列 还有另一种方式:
答案 2 :(得分:0)
$ array = array_unique($array)
;
是的,它也适用于多维数组;它只是检查平等。