数组结构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);
守候你守候我
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);
- 3 回答
- 0 关注
- 148 浏览
添加回答
举报
0/150
提交
取消