您可以在一个查询中执行此操作,然后将其组合到关联数组中:
$query = ' SELECT *
FROM parent AS p
LEFT JOIN model AS m
ON p.id = m.parent_id
LEFT JOIN model_images AS m_i
ON m.model_id = m_i.model_id';
$array = array();
if($mysli->query($quer)){
while($row = $result->fetch_assoc()){
$array[$row['parent_name']][$row['model_id']] = $row;
}
}
您将拥有一个以父名称作为数组键的关联数组。然后,您可以使用for循环只打印一次键(使用$i=0),其余的按值打印。
够清楚了吗?
编辑
Array(
'Par 1' =>
Array(
[0] => Array(
'parent_id' => 1,
'parent_name' => 'Par 1',
'model_id' => 1,
'model_name' => 'Model 1',
'image_id',
),
[1] => Array(...)
),
'Par 2' => Array(...)
)
所以要打印出来需要两个循环。一个是父母的名字,一个是孩子的名字。
foreach($array as $par_name => $models){
echo 'Parent name: '.$par_name.'<br />';
echo 'Model ID: '.$models[0]['model_id'].', Model Name: '.$models[0]['name']; // replace with your desired output
}
现在知道它是怎么工作的了吗?当然,正如Artefactor所说,如果您不喜欢OOP函数,可以使用过程函数。