我正在使用一个多维数组。如何按值去重?在下面的数组中,2和5具有相同的ID。是否有一个函数可以根据特定值删除任何重复的数组?在本例中,我想删除数组2和数组5,因为它们与数组具有相同的ID。
感谢您提供的任何信息。
Array
(
[0] => stdClass Object
(
[d] => 2010-10-18 03:30:04
[ID] => 9
)
[1] => stdClass Object
(
[d] => 2010-10-18 03:30:20
[ID] => 4
)
[2] => stdClass Object
(
[d] => 2010-11-03 16:46:34
[ID] => 9
)
[3] => stdClass Object
(
[d] => 2010-11-02 03:19:14
[ID] => 1
)
[4] => stdClass Object
(
[d] => 2010-05-12 04:57:34
[ID] => 2
)
[5] => stdClass Object
(
[d] => 2010-05-10 05:24:15
[ID] => 9
)
)发布于 2010-12-02 06:29:56
一种方法是:($old_array是您的数组,$new_array将包含新的数组,去掉重复项,以该ID为关键字)
$new_array = array();
foreach ($old_array as $item)
if (!array_key_exists($item->ID, $new_array))
$new_array[$item->ID] = $item;(我还没有测试过,但它应该可以工作)
发布于 2015-01-08 05:59:29
您可以使用ouzo goodies来完成此操作
$result = FluentArray::from($array)->uniqueBy('ID')->toArray();请参阅http://ouzo.readthedocs.org/en/latest/utils/fluent_array.html#uniqueby
发布于 2010-12-02 06:28:01
我认为循环并构造一个新的数组是最简单的。在循环中,使用array_key_exists()确定ID是否已存在于新数组中,如果不存在,则追加一个元素。
https://stackoverflow.com/questions/4329778
复制相似问题