我有一个数组,在下面我运行 foreach 从 mysql 数据库获取值 $pn_list 是 PHP 代码上面的数组。我试图找出“gen_buy_len”与我将“gen_buy_qty”加在一起的位置相同。我得到下面的结果。任何帮助表示赞赏。
Array
(
[2099] => 2099
[2906] => 2906
)
foreach($pn_list as $pn){
SQL::Query("SELECT * FROM `MPL`.`MPL` WHERE `job` = '$job' AND `qb_pn` = $pn");
$results = SQL::Results();
$arr = array();
foreach($results as $k => $value){
$key = $pn . ":" . $value['gen_buy_len'];
$arr[$key] += $value['gen_buy_qty'];
}
}
print_r($arr);
我的结果:
Notice: Undefined index: 2099:240 in /var/www/html/procurement/html/mpl.php on line 75
Notice: Undefined index: 2906:504 in /var/www/html/procurement/html/mpl.php on line 75
Array
(
[2906:504] => 1
)
我的目标:
Array
(
[2099:240] = 5 //These Are Two $value['gen_buy_qty'] added together from DB
[2906:480] = 1
)
最佳答案
尝试将您的 foreach
block 修改为如下:
foreach($pn_list as $pn){
SQL::Query("SELECT * FROM `MPL`.`MPL` WHERE `job` = '$job' AND `qb_pn` = $pn");
$results = SQL::Results();
$arr = array();
foreach($results as $k => $value){
$key = $pn . ":" . $value['gen_buy_len'];
if (!array_key_exists($key, $arr)) {
$arr[$key] = 0;
}
$arr[$key] += $value['gen_buy_qty'];
}
}
这应该初始化数组的键,以防它尚不存在,因此您无法开始向其添加值。
关于php - 尝试在 PHP 中组合数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30491782/