【问题标题】:SQL result to PHP multidimensional arraySQL结果到PHP多维数组
【发布时间】:2011-01-08 13:24:14
【问题描述】:

我正在使用“连接方式”功能从 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 字段 DATA 是项目的名称 LEVEL 字段是层次结构中行的级别。

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

层次结构的深度永远不会提前知道。

所以我的问题是:

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

提前一百万感谢您的回答。

【问题讨论】:

  • 感谢您的回答马克。我可能遗漏了一些东西,因为我已经阅读了您建议的帖子,并且我成功生成了一个多维数组,但我的问题更多与正确的格式有关,以便它与 php 函数 json_encode() 一起使用,以便能够通过数据到 AJAX 应用程序。

标签: php sql arrays multidimensional-array


【解决方案1】:

试试这个

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() 结合使用的正确数组格式。但再次感谢您的帮助,我会继续挖掘。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-11
  • 2013-02-28
  • 1970-01-01
  • 2011-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多