Mik*_*ike 1 php mysql recursion
我一直在玩一个ALMOST为我工作的功能,这是我从这里获得的,但它增加了一个我不想要的额外阵列.信息存储在我的数据库中,如下所示:

方法
private function buildCategories($array,$parent)
{
$result = array();
foreach($array as $row)
{
if($row['parent'] == $parent)
{
$result[$row['category_name']] = $this->buildCategories($array,$row['category_id']);
}
}
return $result;
}
$json = json_encode($this->buildCategories($array,NULL));
return $json;
Run Code Online (Sandbox Code Playgroud)
我要这个:
{"reloading":{"components","presses and dies","tumblers & scales","tools & accessories","shotshell reloading"}
Run Code Online (Sandbox Code Playgroud)
但我得到的是这个:
{"reloading":{"components":[],"presses and dies":[],"tumblers & scales":[],"tools & accessories":[],"shotshell reloading":[]}
Run Code Online (Sandbox Code Playgroud)
注意:我问了一个类似的问题,但它不是建立一个关联数组.因为它不像我最初的要求,我认为需要另一个线程.
你可以得到这个:
{"reloading":["components","presses and dies","tumblers & scales","tools & accessories","shotshell reloading"]}
Run Code Online (Sandbox Code Playgroud)
码:
private function buildCategories($array,$parent)
{
$result = array();
foreach($array as $row) {
if($row['parent'] == $parent) {
if ($row['parent'] == NULL) {
$result[$row['category_name']] = $this->buildCategories($array,$row['category_id']);
} else {
$result[] = $row['category_name'];
}
}
}
return $result;
}
Run Code Online (Sandbox Code Playgroud)