从类似树的mysql结果集创建Json

时间:2016-10-19 13:43:35

标签: php mysql json algorithm tree

问题是得到以下结果集:

.ui-tabs-tab.ui-state-default a,
.ui-tabs-tab.ui-state-hover a {
    /*add your custom styles here*/
}

到php中的以下内容:

       'org1', 'unit1', 'proj1'
       'org1', 'unit1', 'proj2'
       'org1', 'unit2', 'proj1'
       'org1', 'unit2', 'proj2'           
       'org2', 'unit1', 'proj1'
       'org2', 'unit1', 'proj2'

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

您可以使用类似

的内容
$final_array = array();
foreach($array as $row){
  $final_array[$row[0]][$row[1]][] = $row[2];
}

现在这将"将SQL结果数组转换为多维数组/树" ,但不是您想要的。 所以我们必须再次处理数组..

$final_array_2 = array(); // Lets go deep
foreach ($final_array as $name => $units) {
    $quarterfinal_array = array(); // Not deep enough
    $semi_final_array = array();
    foreach ($units as $proj_name => $projects) {
        $nano_final_array = array(); // Lets dig deeper ;)
        $nano_final_array['name'] = $proj_name;
        $nano_final_array['projects'] = $projects;
        $semi_final_array[] = $nano_final_array;
    }
    $quarterfinal_array['units'] = $semi_final_array;
    $quarterfinal_array['name'] = $name;

    $final_array_2[] = $quarterfinal_array;
}



echo json_encode($final_array_2);

PS:抱歉,我选择的变量名称不是最理想的,但是他们完成了工作;)这是P.O.C,你可以随时改进它。

<强> DEMO