簡體   English   中英

在PHP中構建多維json數組

[英]To build a multi-dimensional json array in PHP

我想要通過sql查詢返回的表中特定json格式的多維數組。 該表如下所示:(請使用原始格式)

| 日期| 計數| 姓名|

| 2013-12-19 | 252 | 值1 |

| 2013-12-19 | 60 | 值2 |

| 2013-12-19 | 8 | 值3 |

| 2013-12-26 | 173 | 值1 |

| 2013-12-26 | 32 | 值2 |

| 2013-12-26 | 6 | 值3 |

我想要以下格式的多維json數組:

{2013-12-19:[{名稱:“值1”,計數:“ 252”},{名稱:“值2”,計數:“ 60”},{名稱:“值3”,計數:“ 8 “}],

2013-12-26:[{名稱:“值1”,計數:“ 173”},{名稱:“值2”,計數:“ 32”},{名稱:“值3”,計數:“ 6” }]}

我嘗試了一個代碼,但是在該數組中添加所有日期值時遇到了麻煩。 這是我嘗試的示例代碼:

    $query2_result = mysql_query($query2) or die(mysql_error());
    $rows_query2 = mysql_num_rows($query2_result);
    $records = array();

    if($rows_query2 > 0) {
     while($r = mysql_fetch_array($query2_result)) {
        if(!array_key_exists($r[date][name],$records[$r[date]])) {
                    $records[$r[date]][name] = array();

        }

         $records[$r[date]]["count"] = $r[count];
         $records[$r[date]]["name"] = $r[name];
      }
    }
    echo json_encode($records);

我提到的每個日期只有一個數組。 像這樣:

{“ 2013-12-19”:{“名稱”:“值1”,“計數”:“ 775”},“ 2013-12-26”:{“名稱”:“值1”,“計數”: “397”}}

Kindle幫助我。 謝謝。

 $records = array();

 if($rows_query2 > 0) {
 while($r = mysql_fetch_array($query2_result)) {
      $records[$r['date']][] = array('name'=>$r['name'],'count'=>$r['count']);
 }

我認為將給定日期的所有記錄添加到子數組所需要做的就是:

$records[$r[date]][] = $r;

邏輯低於1時更改

while($r = mysql_fetch_array($query2_result)) {
    $records[$r["date"]][]  = array(  "Name" => $r["name"], "Count" => $r["count"]);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM