Добавление массива в массив

Рейтинг: 0Ответов: 1Опубликовано: 30.09.2014

Есть код:

$project_task = array();
foreach($project_tasks as $task) {
    $subtasks = $task->getAllSubTasks();
    $subt = array();
    foreach ($subtasks as $sub){
        $project_task['subtasks'] = $sub->getArrayInfo();
    }
    $project_task[] = $task->getArrayInfo();
}

Хочу добавить новое значение к массиву задачи, но добавляется как новое значение основного массива, пробовал через array_merge пред последней фигурной скобкой, предварительно задав подзадачам другую переменную, но опять же выводит не то. Может, синтаксис неверный...

Нужно так:

[0] => array (
  [id]=> "123",
  [name]=> "some task",
  [subtasks]=> array(
    [id]=> "345",
    [name]=> "some subtask",
    ...
  )
),
[1] => array (
  [id]=> "789",
  [name]=> "some task again",
  [subtasks]=> array(
    [id]=> "987",
    [name]=> "some subtask again",
    ...
  )
)

А получается так:

[0] => array (
  [id]=> "123",
  [name]=> "some task",
  ...
),
[1] => array (
  [id]=> "789",
  [name]=> "some task again",
  ...
),
[subtasks] => array (...)

Ответы

▲ 2Принят

Смею предположить, что нужно так:

[0] => array (
  [id]=> "123",
  [name]=> "some task",
  [subtasks]=> array(
    [0] => array(
        [id]=> "345",
        [name]=> "some subtask 1",
        ...
    ),
    [1] => array(
        [id]=> "346",
        [name]=> "some subtask 2",
        ... 
    )
  )
),

$project_task = array();
foreach($project_tasks as $task) {
    $subtasks = $task->getAllSubTasks();
    $tmp = $task->getArrayInfo();
    $tmp['subtasks'] = array();
    foreach ($subtasks as $sub){
        $tmp['subtasks'][] = $sub->getArrayInfo();
    }
    $project_task[] = $tmp;
}