【问题标题】:Appending Array in For Loop在 For 循环中追加数组
【发布时间】:2012-03-09 09:25:05
【问题描述】:

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

这是我目前所拥有的-

$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"]。

谢谢

【问题讨论】:

    标签: php arrays for-loop


    【解决方案1】:

    变化:

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

    【讨论】:

      【解决方案2】:

      那是因为你覆盖了$response["Messages"]。你应该这样做(在循环内)

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

      在循环之外

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

      【讨论】:

      • 它总是很明显!谢谢,我一直在用头撞墙!
      猜你喜欢
      • 1970-01-01
      • 2014-11-03
      • 2018-10-08
      • 2016-08-22
      • 2021-08-10
      • 1970-01-01
      • 2018-10-04
      • 1970-01-01
      • 2022-01-25
      相关资源
      最近更新 更多