メニュー ツリー生成のための再帰
あなたの状況では、カテゴリに親カテゴリを示す「ルート」フィールドがあるデータベース構造があります。 。必要な HTML 出力には、カテゴリ階層を表すネストされたリストが含まれます。これを実現するには、再帰的な PHP 関数を使用できます。
関数の例を次に示します。
function recurse($categories, $parent = null, $level = 0) {
$ret = '';
foreach ($categories as $index => $category) {
if ($category['root'] == $parent) {
$ret .= '' . $category['name'] . '
';
$ret .= $this->recurse($categories, $category['id'], $level 1);
$ret .= ' ';
}
}
return $ret . '
';
}
この関数は、ルート カテゴリに null 値の 'root' フィールドがあることを前提としています。カテゴリを反復処理し、「ルート」フィールドに基づいて子カテゴリを識別し、ネストされたリストを使用して HTML を構築します。
この関数を使用するには:
オプションで、リストを作成する前にカテゴリに子カテゴリがあるかどうかを確認することで、空のリストを避けるように関数を変更できます。
function recurse($categories, $parent = null, $level = 0) {
$ret = '';
foreach ($categories as $index => $category) {
if ($category['root'] == $parent) {
$ret .= '' . $category['name'] . '
';
$sub = $this->recurse($categories, $category['id'], $level 1);
if ($sub != '
') {
$ret .= $sub;
}
$ret .= ' ';
}
}
return $ret . '
';
}
この変更された関数は、カテゴリに少なくとも 1 つの子がある場合にのみリストを作成します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3