首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

PHP 循環輸出 JSON 格式詳解:從單個對象到數組結構

     編輯:程式設計綜合問答

很多 PHP 初學者困惑:while 循環中構建數組並 json_encode,最終輸出到底是什麼結構?這裡詳細拆解一下。

代碼示例

$sayList = []; // 初始化空數組
while ($row = mysql_fetch_array($query)) {
    $sayList[] = array(
        'title' => "aa",
        'pic'   => "bb"
    );
}
echo json_encode($sayList);

輸出結果分析

假設循環執行 3 次(查詢到 3 條記錄),$sayList 變為:

[
    {"title": "aa", "pic": "bb"},
    {"title": "aa", "pic": "bb"},
    {"title": "aa", "pic": "bb"}
]

json_encode 輸出的是 JSON 數組,每個元素是一個對象,結構如下:

[
  {"title":"aa","pic":"bb"},
  {"title":"aa","pic":"bb"},
  {"title":"aa","pic":"bb"}
]

關鍵點總結

  • $sayList[] = ... 是「入隊」操作,自動生成數字索引(0, 1, 2...)
  • json_encode 對數字索引數組輸出 [...](JSON Array),對關聯數組輸出 {...}(JSON Object)
  • 若需指定鍵名,可用 $sayList[$row['id']] = ...,輸出則變為 {"1":{...}, "2":{...}}
  • 實際開發中,通常從 $row 取動態值而非寫死 "aa"/"bb"

進階:輸出結構化數據

$result = [
    'code' => 200,
    'msg'  => 'success',
    'data' => $sayList
];
echo json_encode($result, JSON_UNESCAPED_UNICODE); // 中文不轉義

輸出:

{
  "code": 200,
  "msg": "success",
  "data": [
    {"title":"標題1","pic":"圖片1.jpg"},
    {"title":"標題2","pic":"圖片2.jpg"}
  ]
}

掌握這個規律,前後端對接再也不會搞混格式。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved