【问题标题】:Convert MySQL table with relation to multi-dimensional array将具有关系的 MySQL 表转换为多维数组
【发布时间】:2016-03-24 12:25:03
【问题描述】:

我有一个菜单表:

id, slug, label, parent

父母与id 有关系,所以如果你有:

1, 'foo-bar', 'Foo Bar', NULL

这将是一个根项目,而:

2, 'foo', 'Foo ', 1

属于“foo-bar”。然后你可以拥有属于foo 的物品等等。

如何在 PHP 中将其转换为多维菜单数组?所以我可以这样做:

<?= $menu['foo-bar']['foo'] // echos 'Foo' ?>

我的要求与How to convert DB table with parent son relation to multi-dimensional array 非常相似,但那里的答案不起作用;它不是递归的。

【问题讨论】:

    标签: php mysql arrays multidimensional-array


    【解决方案1】:

    这是foreach(未经测试)的示例,它可以做你想做的事情。

    <?php
    // $results is your data from database
    $menu = array();
    
    foreach($results as $k => $result) {
      $key = $result['id'];  
      $parent = $result['parent'];
      if(!empty($parent)){
       array_push($menu[$parent]['parents'], $result);
      } else {
        unset($results[$k]['parent'];
        $menu[$key] = $result;
      }
    }
    
    var_dump($menu);
    

    【讨论】:

      猜你喜欢
      • 2015-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多