首页 > 解决方案 > 更改 foreach php 中的原始数组值

问题描述

我想在 foreach 中更新一个数组,我尝试了这两个代码:

代码 1:

 foreach ($listOrders as $k => $order) {

    foreach ($listOrders as $key => $o) 
    {
      if ($o["id_order"] == $order["id_order"])
      {
         unset($listOrders[$key]);
      }
    }

在这个 codeunset 中不起作用

代码 2:

     foreach ($listOrders as $k => &$order) {

     foreach ($listOrders as $key => $o) 
     {
        if ($o["id_order"] == $order["id_order"])
        {
           unset($listOrders[$key]);
        }
     }

如果我使用 & 和 $order $listOrders 将不会返回我想要的所有数据。

标签: phpmysqlforeacharray-unset

解决方案


如果您只是想获取列表中的订单列表,您可以使用array_column()索引列表id_order。由于您只能在具有特定键的数组中拥有 1 个条目,因此这将最终以数组中具有特定订单 ID 的最后一个条目...

$uniqueList = array_column(listOrders, null, "id_order");

如果您只需要没有索引的列表,您可以使用array_values()重新索引列表。

$uniqueList = array_values(array_column(listOrders, null, "id_order"));

推荐阅读