したがって、再帰配列に関してこの問題があります。私が欲しいのは、データベースから PHP を使用して再帰配列を取得し、別のテーブルを作成せずにサブメニューを含むナビゲーション メニューを作成できるようにすることです。
これは私がこれまで持っている機能です。
function getMenu($tree = null){
$tree2 = array();
$tree = getPages();
foreach($tree as $i => $item){
if($item->parent_id == $item->ID){
$tree2[$item->ID] = $item;
$tree2[$item->ID]['submenu'] = getMenu($tree, $item->ID);
}
}
return $tree2;
}
明確にするために、私はこの関数を自分で作成したのではなく、http://www.jugbit.com/php/php-recursive-menu-with-1-query/から取得し、適切な関数がどこにあるかを考えて調整を行いました
$tree 変数はこの関数から来ています。
function getPages($limit = null,$sort = null) {
global $db;
$query = $db->prepare('SELECT * FROM pages ORDER BY Position');
$query->execute();
return $query->fetchAll(PDO::FETCH_CLASS);
}
今、私は過去2日間、私が間違っていることを理解しようとして、これについてボールをつぶしてきました.
getMenu 関数を出力すると、空の配列しか取得できず、理由がわかりません。それはforeachを正しく取得し、それが問題だとは思いませんが、100%確信が持てません..
質問が明確であることを願っていますが、そうでない場合は申し訳ありませんが、必要な場所を明確にします。
前もって感謝します