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

标签 php mysql arrays

我有一个数组,在下面我运行 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/

相关文章:

php - Excel 生成的 CSV,特殊字符消失 (ÆØÅ) - PHP

PHP SOAP 请求不正确

mysql - 如何从文本文件中删除特殊字符

MySQL 使用索引更新查询速度极慢

javascript - 使 JavaScript 函数可行

python - 寻找 "right"方法在 numpy 中做一系列矩阵向量产品

php - 使用 gethostbyname 解析 IP

php - 412 - 使用 X-SendFile 传送的文件的前提条件失败

mysql - 如何创建调用MySQL中存储函数的 View ?

php - 如何强制仅从 API 响应中提取 JSON 数据?