1

ここから取得した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;

これ欲しい:

{"reloading":{"components","presses and dies","tumblers & scales","tools & accessories","shotshell reloading"}

しかし、私が得るものはこれです:

{"reloading":{"components":[],"presses and dies":[],"tumblers & scales":[],"tools & accessories":[],"shotshell reloading":[]}

注:同様の質問をしましたが、連想配列を作成することではありませんでした。最初に尋ねたようなものではなかったので、別のスレッドが必要だと思いました。

4

1 に答える 1

6

あなたはこれを得ることができます:

{"reloading":["components","presses and dies","tumblers & scales","tools & accessories","shotshell reloading"]}

コード:

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; 
}
于 2012-10-22T04:34:21.523 に答える