ページのグループを配列に配置し、親ID番号に応じて配置しようとしています。親IDが0の場合、次のような配列として配列に配置したいと思います...
$get_pages = 'DATABASE QUERY'
$sorted = array()
foreach($get_pages as $k => $obj) {
if(!$obj->parent_id) {
$sorted[$obj->parent_id] = array();
}
}
しかし、親IDが設定されている場合は、それを関連する配列に配置したいと思います。これもそのような配列として...
$get_pages = 'DATABASE QUERY'
$sorted = array()
foreach($get_pages as $k => $obj) {
if(!$obj->parent_id) {
$sorted[$obj->id] = array();
} else if($obj->parent_id) {
$sorted[$obj->parent_id][$obj->id] = array();
}
}
これは私が問題を抱え始めるところです。配列の2次元に挿入する必要のある3番目の要素がある場合、または3次元に挿入する必要のある4番目の要素がある場合でも、その配列キーが存在するかどうかを確認する方法はありません。したがって、私が理解できないのは、配列キーが1次元の後に存在するかどうか、および存在する場所に存在するかどうかを検出して、新しい要素を配置できるようにする方法です。
これが私のデータベーステーブルの例です
id page_name parent_id
1 Products 0
2 Chairs 1
3 Tables 1
4 Green Chairs 2
5 Large Green Chair 4
6 About Us 0
これが私が取得したい出力の例です。これを行うためのより良い方法があれば、私は提案を受け付けています。
Array([1]=>Array([2] => Array([4] => Array([5] => Array())), [3] => Array()), 6 => Array())
よろしくお願いします!