假设并希望您正在使用 PDO:
$sql = '
SELECT
a.CID,
a.Item,
a.Parent,
IF(NOT a.Parent, (SELECT GROUP_CONCAT(CID) FROM betyg_category WHERE Parent = a.CID), NULL) AS catitems
FROM
betyg_category a
ORDER BY
a.CID';
$stmt = $pdo->query($sql);
$resultset = $stmt->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC);
$itemarray = array();
foreach($resultset as $row)
{
if(!empty($row[0]['catitems']))
{
foreach(explode(',', $row[0]['catitems']) as $cid)
{
$itemarray[$row[0]['Item']][$cid] = $resultset[$cid][0]['Item'];
}
}
elseif(!$row[0]['Parent']) // Account for categories with no items in it
{
$itemarray[$row[0]['Item']] = array();
}
}
然后,您可以使用以下命令可视化数组:
echo '<pre>';
print_r($itemarray);
echo '</pre>';
这给了你:
Array
(
[Litteratur] => Array
(
[2] => Integration av källorna
[3] => Belysning av egna resultat
[4] => Referenser
)
[Validitet] => Array
(
[6] => Huvudsyfte
[7] => Oberoende och beroende variabler
[8] => Analysmetoderna
)
[Reliabilitet] => Array
(
[10] => Metodval
[11] => Metodbeskrivning
[12] => Databearbetning
)
[Språk, stil och struktur] => Array
(
[14] => Språk och stil
[15] => Struktur
)
[Arbetssätt] => Array
(
[17] => Försvar och opposition
[18] => Etiska och samhälleliga aspekter
)
[Etik] => Array
(
[20] => Test 1
)
)