php多维数组追加新值,在多维数组(PHP)中填充值

我有一个小问题.我正在处理一些包装/产品清单.

如果您正在查看包裹,则我的网站应向您显示其中有哪些产品.

如果一个产品中有多个产品,则应删除该数组,剩余数组的值应为1(每个删除的数组).

所以这是我的代码:

// $products_in_package has all products in it

// First of all, the products come from a db and don't have a count

// So i first give them a count of 1

foreach ($products_in_package as $product => $value) {

$products_in_package[$product]['count'] = intval(1);

}

foreach ($products_in_package as $product) {

$id_to_find = intval($product['ID']);

$product_count = intval($product['count']);

$found_id = 0;

// Now I try to find any ident products

// If found and over 1 time (beacouse he finds the first too of course)

// Then delete this array and count up the products count

for ($i=0; $i <= count($products_in_package); $i++) {

if(intval($products_in_package[$i]['ID']) === $id_to_find){

$found_id++;

if($found_id > 1){

$product_count = $product_count + 1;

$product['count'] = $product_count;

unset($products_in_package[$i]);

array_merge($products_in_package);

while($i > $products_in_package){

$i = 0;

}

}

}

}

}

我得到的是正确的多维数组,但计数仍为1.

代码有什么问题?

每次我尝试记录代码时,我都会得到正确的整数. (不,我已经尝试删除该cheche)

但是,如果我将数组从循环中注销,则总得到的计数为1.

解决方法:

$product是数组元素的副本,因此当您执行$product [‘count’] = $product_count时,您将分配给副本,而不是原始数组.

您可以通过在foreach中使用参考来解决此问题:

foreach ($products_in_package as &$product) {

标签:arrays,php

来源: https://codeday.me/bug/20191119/2034525.html

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值