PHP и MySQL — создание многомерного массива в цикле

#php #mysql

#php #mysql

Вопрос:

Привет, ребята, я нашел похожие проблемы, на которые уже отвечал, но любая из них была такой же, как в моей ситуации.

У меня есть цикл, повторяющий объект данных mysql, и я хотел бы создать многомерный массив на основе всех результатов, но, например, если я сделаю это:

 $i=0; 
while($row3 = mysql_fetch_array($raw_result, MYSQL_ASSOC)){ 
     $row2[0] = array('father' .$i => $children);
     $i  ;
}
  

Он сохраняет только последнего дочернего элемента (и его отца). И если я сделаю это:

 while($children = mysql_fetch_array($raw_result, MYSQL_ASSOC)){ 
     $myData[0] = array('father1' => $children, 'father2' => $children);
}
  

Тогда он работает нормально, он сохраняет обоих отцов, но, очевидно, это не будет работать динамически, потому что каждая итерация перезаписывает последнюю.

Итак, есть ли способ добавить эти данные вместо их перезаписи?

Большое спасибо за ваше время!

Ответ №1:

Изменить на

 $row2[] = array('father'.$i => $children);
  

или для

 $row2['father'.$i] = $children;
  

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

1. Да, по сути, вы просто пытаетесь перейти к массиву вместо того, чтобы каждый раз обновлять его в позиции 0. Вот почему он перезаписывается. Вы также можете использовать array_push( $row2, array(‘father’.$i => $children));