在For循环中追加数组

时间:2012-03-09 09:25:05

标签: php arrays for-loop

我有一个循环遍历数据的循环,我想要实现的是每个循环,数组在返回之前附加到另一个数组。

这是我到目前为止所拥有的 -

$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个数据,它将只有数组中的最后一个......

我错过了一些非常基本的东西吗?

如果我发送两个数据,我想要的是返回CorrelationId和2 [“Messages”]。

由于

2 个答案:

答案 0 :(得分:2)

变化:


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

答案 1 :(得分:1)

那是因为你压倒$response["Messages"]。你应该做(在循环内)

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

并在循环之外

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