尝试在PHP中组合数组中的值

尝试在PHP中组合数组中的值,php,mysql,arrays,Php,Mysql,Arrays,我有一个数组,在它下面运行foreach从mysql数据库中获取值$pn_列表是PHP代码上面的数组。我想知道“gen_buy_len”和我加在一起的“gen_buy_Quantity”是一样的。我得到下面的结果。谢谢你的帮助 Array ( [2099] => 2099 [2906] => 2906 ) foreach($pn_list as $pn){ SQL::Query("SELECT * FROM `MPL`.`MPL` WHERE `job`

我有一个数组,在它下面运行foreach从mysql数据库中获取值$pn_列表是PHP代码上面的数组。我想知道“gen_buy_len”和我加在一起的“gen_buy_Quantity”是一样的。我得到下面的结果。谢谢你的帮助

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
块修改如下:

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'];
    }
}

这应该初始化数组的键,以防它还不存在,因此您无法开始向它添加值。

我收到错误警告:array_key_exists()需要2个参数,给定1个参数,当我添加数组$arr或$value时,我只得到数组的一行([2100:240]=>20)哇!很抱歉我犯了一个小错误,我没有办法从这里测试这段代码。现在已更新,请查看是否还有任何错误。