PHP COUNT\u递归为关联(分层)数组提供错误输出

PHP COUNT\u递归为关联(分层)数组提供错误输出,php,arrays,Php,Arrays,谢谢你能提供的任何帮助 我有一个通过PHP从mySQL数据库创建的关联数组(分层)。我在一个共享服务器平台上运行,因此我只能使用mySQL版本5.6.46,这意味着我无法访问“递归CTE”和“WITH”命令。我试图(用PHP)完成的是计算孩子的确切数量(不仅仅是第一个级别,而是下面的所有级别),并将该数量计算到组织层次结构中每个人姓名的末尾。在堆栈溢出问题上花了几个小时寻找如何实现这一点的想法后,我发现很少有人提到这个问题,但我已经能够提取足够的代码,从而得出“部分”起作用的东西。令人沮丧的是不

谢谢你能提供的任何帮助

我有一个通过PHP从mySQL数据库创建的关联数组(分层)。我在一个共享服务器平台上运行,因此我只能使用mySQL版本5.6.46,这意味着我无法访问“递归CTE”和“WITH”命令。我试图(用PHP)完成的是计算孩子的确切数量(不仅仅是第一个级别,而是下面的所有级别),并将该数量计算到组织层次结构中每个人姓名的末尾。在堆栈溢出问题上花了几个小时寻找如何实现这一点的想法后,我发现很少有人提到这个问题,但我已经能够提取足够的代码,从而得出“部分”起作用的东西。令人沮丧的是不知道为什么它对根级别正确工作,但对下面的级别却不正确。有人能告诉我我的代码中缺少了什么,我应该朝哪个方向走吗?谢谢大家!

下面是关联数组的输出示例。作为补充信息,根目录中正好有72个子/孙子

[
  {
    "value": "Jim Smith [VP]",
    "id": "10003",
    "items": [
      {
        "value": "Michael Jones [Senior Director]",
        "id": "10004",
        "items": [
          {
            "value": "Ralph Henry [Director]",
            "id": "10012",
            "items": [
              {
                "value": "Michael Peterson [Manager]",
                "id": "10046",
                "items": []
              },
              {
                "value": "Bryan Gosse [Manager]",
                "id": "10048",
                "items": []
              },
              {
                "value": "Sally Eichart [Manager]",
                "id": "10053",
                "items": []
              }
            ]
          },
          {
            "value": "Mike Walsh [Director]",
            "id": "10016",
            "items": [
              {
                "value": "Kevin Michaels [Manager]",
                "id": "10033",
                "items": []
以下是我运行代码时得到的结果:

[
  {
    "value": "Jim Smith [VP] (72)", //correct!
    "id": "10003",
    "items": [
      {
        "value": "Michael Jones [Senior Director] (3)", //should be (19)
        "id": "10004",
        "items": [
          {
            "value": "Ralph Henry [Director] (0)", //should be (3)
            "id": "10012",
            "items": [
              {
                "value": "Michael Peterson [Manager] (0)", //correct (but is it?)
                "id": "10046",
                "items": []
              },
              {
                "value": "Bryan Gosse [Manager] (0)", //correct
                "id": "10048",
                "items": []
              },
              {
                "value": "Sally Eichart [Manager] (0)", //correct
                "id": "10053",
                "items": []
              }
            ]
          },
          {
            "value": "Mike Walsh [Director] (0)", //should be (4)
            "id": "10016",
            "items": [
              {
                "value": "Kevin Michaels [Manager] (0)", //correct
                "id": "10033",
                "items": []
              },
这是我的密码:

public static function getTopCategories()
    {
        $prime_id = $_SESSION['email_address'];
        return self::getCategories('email_address = "' .$prime_id. '"');
    }

public static function getCategories($where = '')
    {
        if ($where) $where = " WHERE $where";
        $db = Database::getInstance();
        $mysqli = $db->getConnection();
$sql_query = "SELECT CONCAT(primes.first_name, ' ', primes.last_name, ' [', domains.position_root, ']') value, domains.prime_id AS id, domains.mgr_id FROM domains INNER JOIN primes ON domains.prime_id = primes.prime_id $where";
        $result = $mysqli->query($sql_query);

        $categories = array();

        while ($category = mysqli_fetch_assoc($result)){
            $my_id = $category['id'];
            $category['items'] = OrgChart::getCategories("mgr_id = $my_id");
                $categories[] = $category;
                $countChildren = (count($category['items'], COUNT_RECURSIVE) / 4);
        }

        foreach ($categories as &$value) {
            $value['value'] = $value['value'] . " (".$countChildren.")";
        }

没有人知道我在代码中做错了什么?希望您能考虑一下在何处关注这一点。非常感谢。你好在学习PHP和mySQL的过程中,我从Stack Overflow的所有可用资源中获得了价值。所以我很困惑,为什么没有人对如何解决我贴出的问题有任何想法。我是新来“问”问题的,所以也许我做得不对?我试图提供所有相关的细节,但没有社区的意见。我注意到我在上面找到的大多数资源(其他人之前提出的问题)都是过时的。也许有些事情已经改变了,没有新的问题得到回答?有人能告诉我吗?非常感谢。没有人知道我在代码中做错了什么?希望您能考虑一下在何处关注这一点。非常感谢。你好在学习PHP和mySQL的过程中,我从Stack Overflow的所有可用资源中获得了价值。所以我很困惑,为什么没有人对如何解决我贴出的问题有任何想法。我是新来“问”问题的,所以也许我做得不对?我试图提供所有相关的细节,但没有社区的意见。我注意到我在上面找到的大多数资源(其他人之前提出的问题)都是过时的。也许有些事情已经改变了,没有新的问题得到回答?有人能告诉我吗?非常感谢。