Создание вложенного json путем добавления дочерних элементов

#php #arrays #foreach #nested

#php #массивы #foreach #вложенный

Вопрос:

сообщество stackoverflow. Ребята?) Моя цель — создать новый массив с элементом [childs], проверив, имеет ли элемент parent_id и не равен null, мне нужно добавить в этот дочерний элемент parent_id. Это работает правильно, но если элемент внутри parent_id имеет другой элемент в качестве дочернего элемента. Это не сработало. Вот моя функция

 public function makeNested($source) {
$nested = array();
foreach($source AS $key => $s)
{
  $s['childs'] = [];
  if (is_null($s['parent_id']))
  {
    $nested[$s['comment_id']] = $s;
  }
  else {
    $pid = $s['parent_id'];
    $nested[$pid]['childs'][] = $s;
  }
}
return array_values($nested);
}
  

Вот мой вывод.

 {
 "data": [
{
  "comment_id": 1,
  "page_id": 3,
  "parent_id": null,
  "user_id": 3,
  "comment": "Hi, i am using new version of WhatsApp.",
  "type_id": 4,
  "first_name": "Custom name",
  "last_name": "Custom name",
  "photo": "images/257139.jpg",
  "childs": [
    {
      "comment_id": 2,
      "page_id": 3,
      "parent_id": 1,
      "user_id": 2,
      "comment": "I'm a child of comment_id 1",
      "type_id": 4,
      "first_name": "Custom name",
      "last_name": "Custom name",
      "photo": null,
      "childs": []
    }
  ]
},
{
  "childs": [
    {
      "comment_id": 33,
      "page_id": 3,
      "parent_id": 2,
      "user_id": 1,
      "comment": "I'm a child of a child. 1 comment my grandfather xD",
      "type_id": 4,
      "first_name": "Custom name",
      "last_name": "Custom name",
      "photo": null,
      "childs": []
    }
  ]
  }
  ]
  }
  

Комментарии:

1. кто там? ребята

2. Может ли кто-нибудь мне помочь?