php - 将MySQL表与多维数组相关转换

标签 php mysql arrays multidimensional-array

我有一个菜单表:

id、slug、标签、父级

父级与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 非常相似但那里的答案不起作用;它不是递归的。

最佳答案

这是 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);

关于php - 将MySQL表与多维数组相关转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36200164/

相关文章:

javascript - 如何计算数组中两个有效数字之间的零值?

php - 我的 php 循环循环了 11 次,而不是 1 次。找不到错误

php - 为 fabpot/goutte 客户端设置 CURL 参数

PHP:for循环内的静态变量和for循环外的非静态变量有什么区别?

php - 为什么laravel中有两个database.php?

Java - 使用数组中的值的replace()方法正在更改数组值?

android - 从 webservice 对象获取数组项到 android

PHP 种子、确定性、加密安全 PRNG(伪随机数生成器)。可能吗?

javascript - PHP - 通知 : Undefined index: and not displaying data

php - 如何使用 PDO ssl 连接到 azure mysql 数据库