我正在使用單個mysql查詢爲嵌套結果(類別和子類別)創建多維數組。php替換陣列ID鍵
查詢
SELECT `categories`.`cat_title`, `subcategories`.`sub_cat_id`, `subcategories`.`sub_cat_title`
FROM (`categories`)
LEFT JOIN `subcategories`
ON `subcategories`.`cat_id` = `categories`.`cat_id`
ORDER BY `categories`.`cat_title
創建多維陣列
$array = array();
foreach ($query->result_array() as $row): //query result as a pure array
$array[$row['cat_title']][] = $row['sub_cat_title'];
endforeach;
return $array;
上述返回類別和與它們相應的子類別。
Array (
[Art] => Array ([0] => Graphic Design [1] => Painting)
[Literature] => Array ([0] => Science Fiction [1] => Poetry [2] => Fiction)
[Science] => Array ([0] => Environmental)
)
是否有可能替換查詢數據數組鍵像子類別ID sub_cat_id
?
$array[ $row['cat_title'] ][ $row['sub_cat_id'] ] = $row['sub_cat_title'];
但是,$array[$row['cat_title']]
可能尚未設置,所以你應該事先添加此檢查:
if(!isset($array[$row['cat_title']])) {
$array[$row['cat_title']] = array();
}
你原來例如
[Literature] => Array ([8] => Science Fiction [94] => Poetry [5] => Fiction)
謝謝!這比我想象的容易!總是會設置'cat_title',而不是檢查類別是否存在子類別,如果存在則顯示它們。 – CyberJunkie 2012-07-28 01:53:25
@CyberJunkie - 這會工作!很高興我能幫助:) – nickb 2012-07-28 01:54:55
輝煌!我花了很多時間試圖找出答案。 – CyberJunkie 2012-07-28 01:56:00