Я строю двоичное дерево, в котором у меня есть два массива. Первый массив имеет пустую древовидную структуру, а второй массив имеет фактические значения. Ниже представлена структура обоих массивов.
Первый массив
"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 глубины, он работает нормально, но если второй массив имеет больше значений, чем первый массив, тогда он нарушает древовидную структуру массива. Итак, теперь я хочу заменить значения до глубины первого массива, независимо от того, насколько велик второй массив, просто замените значения до глубины первого массива. Неужели такое возможно?
Спасибо!