php - 从父子关系构建关联数组

标签 php mysql recursion

我一直在玩一个对我来说几乎有用的函数,它是我从 HERE 得到的。 ,但它添加了一个我不想要的额外数组。信息像这样存储在我的数据库中:

enter image description here

方法

private function buildCategories($array,$parent)
{
    $result = array();
    foreach($array as $row)
    {
        if($row['parent'] == $parent)
        {
            $result[$row['category_name']] = $this->buildCategories($array,$row['category_id']);
        }
    }
    return $result;
}
$json = json_encode($this->buildCategories($array,NULL));
return $json;

我想要这个:

{"reloading":{"components","presses and dies","tumblers & scales","tools & accessories","shotshell reloading"}

但我得到的是:

{"reloading":{"components":[],"presses and dies":[],"tumblers & scales":[],"tools & accessories":[],"shotshell reloading":[]}

注意:我问过类似的问题,但不是要构建关联数组。由于它不像我最初问的那样,我认为需要另一个线程。

最佳答案

你可以得到这个:

{"reloading":["components","presses and dies","tumblers & scales","tools & accessories","shotshell reloading"]}

代码:

private function buildCategories($array,$parent) 
{
    $result = array();
    foreach($array as $row) {
        if($row['parent'] == $parent) {
            if ($row['parent'] == NULL) {
                $result[$row['category_name']] = $this->buildCategories($array,$row['category_id']);
            } else {
                $result[] = $row['category_name'];
            }
        }
    }
    return $result; 
}

关于php - 从父子关系构建关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13004966/

相关文章:

php - 在 codeigniter 中验证 max_length、min_length

php - Mysql大数据库导入

javascript - 排列的递归列表

php - 当 the_field 为空时隐藏一个 div

php - 使用 mysqli_result() 获取特定列数据

php - 在 printf() 字符串中命名 PHP 说明符

Java 简单日期格式

mysql - 如何求和 MySQL 中的两个第一个字符?

java - 递归方法中不需要返回

java - 使用深度优先搜索遍历矩阵找出渗流