php - 更改 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 将不会返回我想要的所有数据。
解决方案
如果您只是想获取列表中的订单列表,您可以使用array_column()
索引列表id_order
。由于您只能在具有特定键的数组中拥有 1 个条目,因此这将最终以数组中具有特定订单 ID 的最后一个条目...
$uniqueList = array_column(listOrders, null, "id_order");
如果您只需要没有索引的列表,您可以使用array_values()
重新索引列表。
$uniqueList = array_values(array_column(listOrders, null, "id_order"));
推荐阅读
- c# - 用变量否定“is”运算符仅适用于“!” 但不是'== false'
- android - A/位图:错误,无法在此处访问无效/释放的位图!A/brutx.mymodeap: runtime.cc:655] 运行时中止
- python-3.x - 交互式 Python 示例重定向 URL?
- android - android可以为MD5抛出NoSuchAlgorithmException吗
- python - 我如何从 python 数据集中的文本文件中读取数据并在其上应用矩阵
- python - sybase 到 sql 服务使用炼金术
- matlab - 在 colab 中使用 octave 运行 .cu 文件
- java - “返回;” vs“空方法体”
- mysql - 使用 MySql 的端点测试 Node Express API
- bash - Bash - 以数字格式转换意大利日期