如何使用PHP从数组中删除重复元素?

时间:2022-08-26 14:15:11

Hi this is my var_dump result. My problem is : If my array contains more than once the same "name"(in my case "Test2"), then remove one of them. In my case all of the information from [0] or [1]. Thx.

嗨这是我的var_dump结果。我的问题是:如果我的数组包含多个相同的“名称”(在我的情况下为“Test2”),则删除其中一个。就我而言,来自[0]或[1]的所有信息。谢谢。

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"
  }
}

I want this result :

我想要这个结果:

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"
      }
    }

2 个解决方案

#1


1  

In you example dublicates not an arrays but objects, so you need to combine like this array_map and array_unique:

在你的例子中,dublicates不是数组而是对象,所以你需要像这个array_map和array_unique一样组合:

$arrayResult = array_map("unserialize", array_unique(array_map("serialize", $inputArray)));

Or try

或者试试

$arrayResult = array();
foreach ( $inputArray as $item ) {
    isset($arrayResult[$item->taskid]) or $arrayResult[$item->taskid] = $item;
}

var_dump($arrayResult); 

#2


0  

You can use array_unique() function

您可以使用array_unique()函数

#1


1  

In you example dublicates not an arrays but objects, so you need to combine like this array_map and array_unique:

在你的例子中,dublicates不是数组而是对象,所以你需要像这个array_map和array_unique一样组合:

$arrayResult = array_map("unserialize", array_unique(array_map("serialize", $inputArray)));

Or try

或者试试

$arrayResult = array();
foreach ( $inputArray as $item ) {
    isset($arrayResult[$item->taskid]) or $arrayResult[$item->taskid] = $item;
}

var_dump($arrayResult); 

#2


0  

You can use array_unique() function

您可以使用array_unique()函数