Предположим, у меня есть следующие таблицы:
- проекты (идентификатор_проекта, имя_проекта)
- документы (идентификатор_документа, имя_документа, идентификатор_проекта)
, который является иерархическим видом сверху вниз, я использую оператор SELECT и циклы для генерации вложенного массива, например:
$result_array = array();
$projects = mysql_query(' SELECT * FROM projets') ;
$i = 0 ;
while( $row_proj = mysql_fetch_assoc($projects) )
{
$result_array[$i] = $row_proj ;
$documents = mysql_query('SELECT * FROM documents WHERE project_id='.$row['project_id']);
$doc_res = array();
while( $row_doc = mysql_fetch_assoc($documents)
{
$doc_res[] = $row_doc;
}
$result_array[$i]['documents'] = $row_doc ;
$i++;
}
.. and so on
результат является вложенным массивом, так что в поле зрения я могу напечатать его следующим образом:
foreach( $projects as $project )
{
echo $project['project_name'];
foreach( $project['documents'] as $document )
{
echo ..
}
}
как я могу сгенерировать это, используя простой плоский цикл, используя SQL-статистику или любую другую вещь, этот способ кажется не лучшим, иногда я использую соединение, но оно не генерирует такие вещи, как вложенный массив.