2
私はカテゴリとサブカテゴリを作る際の能力がある私のプロジェクトに取り組んでいます。私は私のデータベースに行ったことはsubcategory column
がcategory_key column
PHP foreachのカテゴリとサブカテゴリ
意味との関係を有することである、subcategory column
に値を持たないすべてのレコードは、カテゴリとみなされ、残りはサブカテゴリがあります。下の画像に
:
b
はa
e, g, h
のサブカテゴリですd
そして今、私はdiplayするためにこのコードを使用していますのサブカテゴリありそれは私のページにあります:
<?php
$query = "SELECT * FROM `categories`";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
if(empty($row['subcategory'])){
echo '
<li class="dd-item dd3-item" id="'.$row['category_key'].'" data-name="'.$row['category_name'].'" data-key="'.$row['category_key'].'">
<div class="dd-handle dd3-handle">
<i class="fa fa-bars" aria-hidden="true"></i>
</div>
<div class="dd-edit other-handle edit">
<i class="fa fa-pencil" aria-hidden="true"></i>
</div>
<div class="dd-edit other-handle delete">
<i class="fa fa-trash" aria-hidden="true"></i>
</div>
<div class="dd3-content">'.$row['category_name'].'</div>
</li>
';
}else{
echo '
<ol class="dd-list">
<li class="dd-item dd3-item" id="'.$row['category_key'].'" data-name="'.$row['category_name'].'" data-key="'.$row['category_key'].'">
<div class="dd-handle dd3-handle">
<i class="fa fa-bars" aria-hidden="true"></i>
</div>
<div class="dd-edit other-handle edit">
<i class="fa fa-pencil" aria-hidden="true"></i>
</div>
<div class="dd-edit other-handle delete">
<i class="fa fa-trash" aria-hidden="true"></i>
</div>
<div class="dd3-content">'.$row['category_name'].'</div>
</li>
</ol>
';
}
}
?>
問題は、それが唯一でなければならず、また、それはそれの<li>
カテゴリの親の内側でなければならないよう<ol>
要素が繰り返されています。
任意のヘルプ?
function appendChildren($input)
{
$output = [];
foreach($input as $value)
{
$key = $value["category_key"];
if(empty($input["subcategory"]))
{
$output[$key] = [];
$output[$key]["value"] = $value;
$output[$key]["children"] = [];
} else {
$parent_key = $value["subcategory"];
$output[$parent_key]["children"][] = $value;
}
}
return $output;
}
が、あなたはこのような配列を持っています:
用途:今
、フォーマットを開始しますカテゴリとサブカテゴリの両方に対して[foreach loop](http://php.net/manual/en/control-structures.foreach.php) –
"subcategory"というあなたのテーブルフィールドは本当に "parent_category"のようなものでしょうか? – siguy85