2012-03-09 131 views
0

我有一個循環通過數據循環,我試圖實現的是每個循環數組在其返回之前被追加到另一個數組。在For循環中追加數組

這裏是我有這麼遠

$response = array(); 
$response["CorrelationId"] = $correlationId; 

此代碼位於外循環,因爲我只想要回「的correlationID」一次......這一切工作正常...現在我想!

foreach ($products as $value){ 
      $pid = mysql_escape_string($value['ProductId']); 
      $dname = mysql_real_escape_string($value['departmentName']); 
      $cname = mysql_real_escape_string($value['categoryName']); 
      $pname = mysql_real_escape_string($value['productName']); 

      //Insert Product data into DB 
      $insert_product = "SQL Goes Here"; 
      $insert_result = mysql_query($insert_product); 
      if(mysql_insert_id() > 0){ 
       $response["Messages"] = array("$pid Has been added."); 
      } 

     } 
     return $response; 

到目前爲止,所有這些都是將最後一個循環添加到數組中。如果我發送2個piecies的數據到循環,它將只有最後一個在數組中...

我是否缺少一些非常基本的東西?

所有我想要的,如果我在哪裏發送兩條數據是讓CorrelationId和2 [「消息」]返回。

感謝

回答

1

那是因爲你overrriding $response["Messages"]。你應該做的

$response["Messages"] = array(); 
+0

它總有一些公然明顯!謝謝,我已經把我的頭撞在了牆上! – 2012-03-09 09:30:00

2

變化(內循環)

$response["Messages"][] ="$pid Has been added."; 

和外循環:

 

$response["Messages"] = "$pid Has been added."; 
//To 
$response["Messages"][] = "$pid Has been added.";