如何使用php从数组中删除重复的元素?
嗨,这是我的var_转储结果。我的问题是:如果我的数组多次包含相同的“名称”(在我的例子中是“Test2”),那么删除其中一个。在我的例子中,[0]或[1]中的所有信息。Thx如何使用php从数组中删除重复的元素?,php,arrays,duplicates,Php,Arrays,Duplicates,嗨,这是我的var_转储结果。我的问题是:如果我的数组多次包含相同的“名称”(在我的例子中是“Test2”),那么删除其中一个。在我的例子中,[0]或[1]中的所有信息。Thx array(3) { [0]=> object(stdClass)#24 (14) { ["name"]=> string(19) "Test2" ["taskid"]=> string(5) "11526" } [1]=> object(std
array(3) {
[0]=>
object(stdClass)#24 (14) {
["name"]=>
string(19) "Test2"
["taskid"]=>
string(5) "11526"
}
[1]=>
object(stdClass)#25 (14) {
["name"]=>
string(19) "Test2"
["taskid"]=>
string(5) "11526"
}
[2]=>
object(stdClass)#26 (14) {
["name"]=>
string(19) "Test1"
["taskid"]=>
string(5) "11525"
}
}
我想要这个结果:
array(3) {
[0]=>
object(stdClass)#24 (14) {
["name"]=>
string(19) "Test2"
["taskid"]=>
string(5) "11526"
}
[1]=>
object(stdClass)#26 (14) {
["name"]=>
string(19) "Test1"
["taskid"]=>
string(5) "11525"
}
}
在您的示例中,DUB应用的不是数组而是对象,因此您需要像这样组合
array\u map
和array\u unique
:
$arrayResult = array_map("unserialize", array_unique(array_map("serialize", $inputArray)));
或尝试
$arrayResult = array();
foreach ( $inputArray as $item ) {
isset($arrayResult[$item->taskid]) or $arrayResult[$item->taskid] = $item;
}
var_dump($arrayResult);
您可以使用array_unique()函数您对对象的看法是正确的,但是您的示例给出了相同的结果。现在它可以工作了。你能解释一下你做了什么吗DYou将一个对象设置到新数组中,但在检查该对象是否存在于新数组中之前,如果不存在,则将添加该对象,否则将不添加该对象