php массив заменяется на ту же глубину - PullRequest
1 голос
/ 08 мая 2020

Я строю двоичное дерево, в котором у меня есть два массива. Первый массив имеет пустую древовидную структуру, а второй массив имеет фактические значения. Ниже представлена ​​структура обоих массивов.

Первый массив

  "157": {
    "id": "157",
    "username": "username",
    "children": [
      {
        "id": "-1",
        "parent_id": "0",
        "username": "NULL",
        "position": "",
        "children": [
          {
            "id": "-1",
            "parent_id": "0",
            "username": "NULL",
            "position": "",
            "children": [
              {
                "id": "-1",
                "parent_id": "0",
                "username": "NULL",
                "position": "",
                "children": []
              }
            ]
          }
        ]
      }
    ]
  }
}

Второй массив

  "157": {
    "id": "157",
    "position": 1,
    "username": "test1",
    "parent_id": null,
    "children": [
      {
        "id": "158",
        "position": 1,
        "parent_id": "157",
        "username": "test1",
        "children": [
          {
            "id": "159",
            "position": 1,
            "parent_id": "158",
            "username": "test2",
            "children": [
              {
                "id": "160",
                "position": 1,
                "parent_id": "159",
                "username": "test3",
                "children": []
              }
            ]
          }
        ]
      }
    ]
  }
}

Я использую функцию array_replace_recursive для замены пустые значения с фактическим значением. Он работает нормально, когда оба массива имеют одинаковую глубину. Например, если первый массив имеет 3 глубины, а второй массив также имеет 3 глубины, он работает нормально, но если второй массив имеет больше значений, чем первый массив, тогда он нарушает древовидную структуру массива. Итак, теперь я хочу заменить значения до глубины первого массива, независимо от того, насколько велик второй массив, просто замените значения до глубины первого массива. Неужели такое возможно?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...