删除重复的数组键

数组结构


array:2 [

  0 => array:3 [

    "id" => 15710

    "sale_id" => 6699

    "item_id" => 300

  ]

  1 => array:3 [

    "id" => 15711

    "sale_id" => 6699

    "item_id" => 300

  ]

]

如果有相同的item_id. 因此,我提到了array_unique但它似乎不起作用。


代码


$test = array_unique($model->items->toArray(), SORT_REGULAR);

Debugbar::addMessage($test,'test');


撒科打诨
浏览 149回答 3
3回答

HUWWW

假设您的数组按以下方式排序,id并且在重复的情况下您希望保留最小的项目id:$newArr = [];foreach(array_reverse($arr) as $v) {    $newArr[$v['item_id']] = $v;}$newArr = array_values($newArr);

守候你守候我

好吧,array_unique 不会如你所愿。您可以通过使用以下代码来实现:$uniqueItems = array_reduce($array, function($carry, $item){    if(!key_exists($item['item_id'], $carry)){        $carry[$item['item_id']] = $item;    }    return $carry;}, []);如果您想再次使用索引数组,您可以使用:$indexedArray = array_values($uniqueItems);
打开App,查看更多内容
随时随地看视频慕课网APP