簡體   English   中英

按php中的json輸出分組

[英]group by json output in php

<?php
$link = mysqli_connect("localhost", "root", "", "college");
$query = "SELECT branch, year,semester, COUNT(*) count FROM students GROUP BY branch,year,semester;";
$result = mysqli_query($link,$query);
$rows= mysqli_fetch_all($result,MYSQLI_ASSOC);
echo json_encode($rows);

?>

這是我的輸出:

[{"branch":"cse","year":"1","semester":"1","count":"4"},{"branch":"cse","year":"2 ","semester":"1","count":"1"},{"branch":"cse","year":"2","semester":"2","count":"2 "},{"branch":"cse","year":"2","semester":"4","count":"1"},{"branch":"cse","year": "3","semester":"2","count":"1"},{"branch":"cse","year":"3","semester":"3","count": "2"},{"branch":"cse","year":"4","semester":"3","count":"1"},{"branch":"cse","year ":"4","semester":"4","count":"2"}, {"branch":"ece","year":"1","semester":"4","count ":"2"},{"branch":"ece","year":"2","semester":"2","count":"2"},{"branch":"ece", "year":"2","semester":"3","count":"1"},{"branch":"ece","year":"3","semester":"1", "count":"1"},{"branch":"ece","year":"3","semester":"3","count":"2"},{"branch":"ece ","year":"4","semester":"2","count":"2"},{"branch":"ece","year":"4","semester":"4 ","count":"2"}, {"branch":"eee","year":"1","semester":"1","count":"1"},{"branch": "eee","year":"1","semester":"4","count":"1"},{"branch":"eee","year":"2","semester": "1","count":"1"},{"branc h":"eee","year":"2","semester":"2","count":"3"},{"branch":"eee","year":"2","學期":"3","count":"2"},{"branch":"eee","year":"2","semester":"4","count":"1"}, {"branch":"eee","year":"3","semester":"1","count":"1"},{"branch":"eee","year":"3" ,"semester":"2","count":"1"},{"branch":"eee","year":"3","semester":"3","count":"4" },{"branch":"eee","year":"3","semester":"4","count":"3"},{"branch":"eee","year":" 4","semester":"2","count":"3"},{"branch":"eee","year":"4","semester":"3","count":" 2"},{"branch":"eee","year":"4","semester":"4","count":"1"}]

但我想要這樣的輸出:

{"cse":

[{"year":"1","semester":"1","count":"4"},
{"year":"2","semester":"1","count":"1"},
{"year":"2","semester":"2","count":"2"},
{"year":"2","semester":"4","count":"1"},
{"year":"3","semester":"2","count":"1"},
{"year":"3","semester":"3","count":"2"},
{"year":"4","semester":"3","count":"1"},
{"year":"4","semester":"4","count":"2"}],

"ece":

[{"year":"1","semester":"4","count":"2"},
{"year":"2","semester":"2","count":"2"},
{"year":"2","semester":"3","count":"1"},
{"year":"3","semester":"1","count":"1"},
{"year":"3","semester":"3","count":"2"},
{"year":"4","semester":"2","count":"2"},
{"year":"4","semester":"4","count":"2"}],

"eee":

[{"year":"1","semester":"1","count":"1"},
{"year":"1","semester":"4","count":"1"},
{"year":"2","semester":"1","count":"1"},
{"year":"2","semester":"2","count":"3"},
{"year":"2","semester":"3","count":"2"},
{"year":"2","semester":"4","count":"1"},
{"year":"3","semester":"1","count":"1"},
{"year":"3","semester":"3","count":"4"},
{"year":"3","semester":"4","count":"3"},
{"year":"4","semester":"2","count":"3"},
{"year":"4","semester":"3","count":"2"},
{"year":"4","semester":"4","count":"1"}]}

建議任何其他方式來顯示上述輸出

與執行mysqli_fetch_all ,一次獲取每一行並在一次操作中將其放入正確的格式可能更容易(並且可能更快)...

$result = mysqli_query($link,$query);
$output = [];
while ( $rows= mysqli_fetch_assoc($result)) {
    $output [$rows['branch']][] = ["year" => $rows['year'], 
                   "semester" => $rows['semester'], 
                   "count" => $rows['count']];
}
echo json_encode($output);

暫無
暫無

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

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