[英]PHP: how to convert Php array to json format
我有如下來自mysql查詢的數據集
hub | month | frequency
GALAXY | 10 | 1
GALAXY | 11 | 2
GALAXY | 12 | 1
LEVERAGES | 10 | 3
LEVERAGES | 12 | 2
我想使用json_encode將數據填充為json格式,如下所示:
[{"name":"GALAXY","total":"4","articles":[["10","1"],["11","2"],["12","1"]]},{"name":"LEVERAGES","total":"5","articles":[["10","3"],["12","2"]]}]
但是我找不到正確的json。 下面是我的代碼:
$root = array();
$aColumns = array('hub', 'month', 'frequency');
$tangos = $this->Report_Model->getMonthHubTango();
foreach($tangos->result_array() as $aRow)
{
$row = array();
$total = 0;
foreach($aColumns as $col)
{
$row[] = $aRow[$col];
$total += $aRow['frequency'];
$hub = $aRow['hub'];
}
$main['name'] = $hub;
$main['total'] = $total;
$main['articles'][] = $row;
}
$root[] = $main;
echo json_encode($root);
任何人? 提前致謝..
我認為,您應該添加$root[] = $main;
放入foreach塊中,因此每個$ main數組都將放入$ root矩陣中:
foreach($tangos->result_array() as $aRow)
{
$row = array();
$total = 0;
foreach($aColumns as $col)
{
$row[] = $aRow[$col];
$total += $aRow['frequency'];
}
$main['name'] = $hub;
$main['total'] = $total;
$main['articles'][] = $row;
$root[] = $main;
}
另外,您還有$ hub在循環中未定義。 因此,$ main ['name']可能未定義。
$root = array();
$tangos = $this->Report_Model->getMonthHubTango();
foreach($tangos->result_array() as $aRow)
{
$row = array();
$total = 0;
foreach($aColumns as $col)
{
$row[] = $aRow[$col];
$total += $aRow['frequency'];
}
$main['name'] = $hub;
$main['total'] = $total;
$main['articles'][] = $row;
$root[] = $main;
}
echo json_encode($root);
就像上面描述的一樣,但是,如果您想為根賦予一個屬性,則可以使您的數據井井有條。 使用$root['data'] = $main;
。 因此,代碼將變為:
foreach($tangos->result_array() as $aRow){
$row = array();
$total = 0;
foreach($aColumns as $col) {
$row[] = $aRow[$col];
$total += $aRow['frequency'];
$hub = $aRow['hub'];
}
$main['name'] = $hub;
$main['total'] = $total;
$main['articles'][] = $row;
}
$root['data'] = $main;
echo json_encode($root);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.