PHP多维数组的SQL结果

PHP多维数组的SQL结果,php,sql,arrays,multidimensional-array,Php,Sql,Arrays,Multidimensional Array,我正在使用“连接方式”功能从Oracle数据库中检索一些分层数据 然后用查询结果填充一个PHP数组,如下所示: while ($row_branches = oci_fetch_array($query_tree)) { $tree[] = array( 'id' => $row_branches['ID'] , 'parent' => $row_branche['PARENT'] , 'data' => htmlspecialchars($row_

我正在使用“连接方式”功能从Oracle数据库中检索一些分层数据

然后用查询结果填充一个PHP数组,如下所示:

while ($row_branches = oci_fetch_array($query_tree)) {
   $tree[] = array(
     'id' => $row_branches['ID']
   , 'parent' => $row_branche['PARENT']
   , 'data' => htmlspecialchars($row_branches['NAME'])
   , 'level' => $row_branches['LEVEL']
   );
}
字段ID是行的唯一ID 字段PARENT是父项的ID 字段数据是项的名称 字段级别是层次结构中行的级别

我宁愿使用多维数组,因为我的目标是使用PHP函数json_decode()

层次结构的深度永远不会事先知道

所以我的问题是:

如何用查询结果填充多维数组

提前感谢您的回答。

试试这个

function adj_tree(&$tree, $item) {
    $i = $item['ID'];
    $p = $item['PARENT'];
    $tree[$i] = isset($tree[$i]) ? $item + $tree[$i] : $item;
    $tree[$p]['_children'][] = &$tree[$i];
}

$tree = array();
while ($row = oci_fetch_array($query_tree)) {
   adj_tree($tree, $row);

这是一份副本:谢谢你的回答,马克。我可能遗漏了一些东西,因为我已经看完了你建议的帖子,并且我成功地生成了多维数组,但我的问题更多地与php函数json_encode()使用的正确格式有关,以便能够将数据传递到AJAX应用程序。谢谢你的快速回复。它非常有用,但不幸的是,由于某种原因,我无法获得与PHP函数json_encode()结合使用的正确数组格式。但再次感谢你的帮助,我会继续挖掘。