我想在foreach中更新一个数组,我尝试了以下两个代码:
代码1:
foreach ($listOrders as $k => $order) {
foreach ($listOrders as $key => $o)
{
if ($o["id_order"] == $order["id_order"])
{
unset($listOrders[$key]);
}
}
在此代码中不起作用
代码2:
foreach ($listOrders as $k => &$order) {
foreach ($listOrders as $key => $o)
{
if ($o["id_order"] == $order["id_order"])
{
unset($listOrders[$key]);
}
}
如果我将&和$ order一起使用,则$ listOrders不会返回我想要的所有数据。
答案 0 :(得分:0)
您的错误应该在这里
foreach ($listOrders as $k => &$order) {
^
删除&
您还使用代码对$ listOrders进行了两次迭代,迭代结束后数组列表是否总是为空?
答案 1 :(得分:0)
如果您只是想获取列表中的订单列表,则可以使用array_column()
通过git merge -s theirs
为列表建立索引。由于您在带有特定键的数组中只能有1个条目,因此最终将以数组中具有特定订单ID的最后一个条目结束...
id_order
如果只需要没有索引的列表,则可以使用array_values()
重新为列表建立索引。
$uniqueList = array_column(listOrders, null, "id_order");