php - 使用 PHP 和 Mysql Foreach 循环创建多维数组

标签 php mysql arrays multidimensional-array

我需要使用 sql 和循环创建一个多维数组。但是,只有一个结果被设置到数组中,最后一个结果将覆盖以前的结果。数组结构如下:

 ->value = Array (4)
   CartID => "1299"
   Date => "2012-09-27 09:17:20"
   Amount => "85.00"
         0 => Array (8)
         CartStatus => "Purchased"
         Date => "2012-09-27 09:17:20"
         CartID => "1299"
         Sequence => "1"
         Amount => "-85.00"
         Comments => " , Refund Status: "

这是我的代码:

    $txarray = array();
    foreach ($data as $transaction) {
    $CartVar = $transaction['CartID'];
    $CartStatus = $transaction['Status'];
    $CartDate = $transaction['DateTime'];
    $CartTotal = $transaction['Total'];
    $txarray = array('CartID' => $CartVar, 'Date' => $CartDate, 'Amount' => $CartTotal);
        $sql1 = $db->query("SQL stuff");
        foreach ($sql1 as $refund) {
        $CartID = $refund['CartID'];
        $Sequence = $refund['Sequence'];
        $TrxType = $refund['TrxType'];
        $ParentID = $refund['ParentID'];
        $TotalSum = '-'.$refund['Amount'];
        $Comments = ' '.$refund['Comments'];
        $Comments .= ', Refund Status: '.ucwords($refund['Status']);
        $txarray[] = array('CartStatus' => $CartStatus, 'Date' => $CartDate, 'CartID' => $CartID, 'Sequence' => $Sequence, 'TrxType' => $TrxType, 'ParentID' => $ParentID, 'Amount' => $TotalSum, 'Comments' => $Comments);
    }

最佳答案

查看上面的代码片段 $txarray 变量由于代码而被覆盖。

$txarray = array('CartID' => $CartVar, 'Date' => $CartDate, 'Amount' => $CartTotal);

需要将其替换为

$txarray[] = array('CartID' => $CartVar, 'Date' => $CartDate, 'Amount' => $CartTotal);

或者您可以使用 array_push() 函数,该函数将推送数组,从而生成多维数组。 例如

 array_push($txarray,array('CartID' => $CartVar, 'Date' => $CartDate, 'Amount' =>      $CartTotal));

有关 array_push 函数的更多文档,请参阅下面提到的 url 中的文档。 http://php.net/manual/en/function.array-push.php

关于php - 使用 PHP 和 Mysql Foreach 循环创建多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13054417/

相关文章:

php - 状态信息丢失 : SImpleSAMLphp

php - 仅在提交表单时调用 PHP 函数

php - 过滤事件列表 Google Calendar PHP

mysql - xml size is exceed capacity of MySQL "extractvalue"function ,我该如何解决这个问题?

Java将错误的数据写入数组

java - 如何对对象数组进行排序 key 使用Java?

javascript - 如何将表单值传递给 ChangePassword.php?

MySQL - 获取最近的用户访问情况。仅显示用户一次

mysql - 是否可以更改 mysql sgbd 上每个数据库的特定表?

c++ - C++11 中对数组的右值引用的目的是什么?