[英]Making a JSON tree from a flat PHP SQL table
從涉及多個JOINS的MySQL查詢中創建代表表的JSON樹的最干凈,最有效的方法是什么?
到目前為止,php數組是通過以下循環創建的:
$rs = mysqli_query($connect, $query);
$arr = array();
while ($row = mysqli_fetch_array($rs, MYSQL_ASSOC)) {
$arr[] = $row;
}
然后,我可以執行echo $ arr [2] [“ sold”]並獲得“ 2蘇打水”
好吧,這是我對自己問題的解決方案!...為了所有人的利益! 它正在工作,但是誰能提出更好的更快方法?
$rs = mysqli_query($connect, $query);
$arr = array();
while ($row = mysqli_fetch_array($rs, MYSQL_ASSOC)) {
$arr[] = $row;
}
$dateLevel = 0;
$employeeLevel = 0;
$soldLevel = 0;
$tree = array();
$count = count ($arr);
for ($i = 0; $i < $count; $i++){
$A = $tree[$dateLevel-1];
if ($A["text"] != $arr[$i]["date"]){
$tree[$dateLevel]= array("text" => $arr[$i]["date"], "expanded" => true, items => array());
$dateLevel++;
$employeeLevel = 0;
$soldLevel = 0;
}
$A = $tree[$dateLevel-1];
$B = $A["items"];
$C = $B[$employeeLevel-1];
if ($C["text"] != $arr[$i]["employee"]){
$tree[$dateLevel-1]["items"][$employeeLevel] = array ("text" => $arr[$i]["employee"], "expanded" => true, items => array());
$employeeLevel++;
$soldLevel = 0;
}
$A = $tree[$dateLevel-1];
$B = $A["items"];
$C = $B[$employeeLevel-1];
$D = $A["items"];
if ($D["text"] != $arr[$i]["sold"]){
$tree[$dateLevel-1]["items"][$employeeLevel-1]["items"][$soldLevel] = array ("text" => $arr[$i]["sold"], "expanded" => true, items => array());
$soldLevel++;
}
}
echo json_encode($tree);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.