2015-05-27 33 views
0

我有一個數組在下面我運行foreach以從mysql數據庫獲取值$ pn_list是PHP代碼上面的數組。我正在試圖找到'gen_buy_len'與'gen_buy_qty'加在一起的地方。我在下面得到結果。任何幫助讚賞。嘗試在PHP中組合數組中的值

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 
) 

回答

0

嘗試修改您的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']; 
    } 
} 

這應該初始化數組的關鍵在它還沒有出現,所以你不能開始增加值。

+0

我得到的錯誤警告:array_key_exists()期望的是2個參數,1中給出,當我添加數組$ ARR或$值I只有一次線陣列 ( [2100:240] => 20 ) –

+0

WHOOPS!抱歉!從我這個小錯誤,我無法從這裏測試這段代碼。現在更新,請看看你是否有更多的錯誤。 – lucasnadalutti