为了账号安全,请及时绑定邮箱和手机立即绑定

删除重复的数组键

删除重复的数组键

PHP
撒科打诨 2021-09-18 11:05:32
数组结构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');
查看完整描述

3 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

假设您的数组按以下方式排序,id并且在重复的情况下您希望保留最小的项目id:


$newArr = [];


foreach(array_reverse($arr) as $v) {

    $newArr[$v['item_id']] = $v;

}


$newArr = array_values($newArr);


查看完整回答
反对 回复 2021-09-18
?
守候你守候我

TA贡献1802条经验 获得超10个赞

好吧,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);


查看完整回答
反对 回复 2021-09-18
  • 3 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信