2012-03-09 189 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.";