猿问

PHP 数组按类别分组

我有一个商店列表,它们可以有多个类别。


今天我多次显示每个商店,一行只有一个类别。


如何对商店进行分组,创建一系列类别,以便商店仅显示一次并具有多个类别?


这是我的尝试:


while ($row = $query->fetch(PDO::FETCH_ASSOC)) {


    array_push(

        $stores,

        [

            "id"=> $row["id"],

            "name"=> $row["nome"],

            "categories"=> array([

                "name"=> $row["categories"]

                //how can i have an array of categories

            ])

        ]

    );

}

这是我显示json结果的方式:


{

    id: 74,

    name: "First Store",

    categories: [

        {

            name: "Clothes"

        }

    ]

},

{

    id: 1,

    name: "Second Store",

    categories: [

        {

            name: "Food"

        }

    ]

},

{

    id: 1,

    name: "Second Store",

    categories: [

        {

            name: "Toys"

        }

    ]

},

这是我需要显示 Json 的方式:


{

    id: 74,

    name: "First Store",

    categories: [

        {

            name: "Clothes"

        }

    ]

},

{

    id: 1,

    name: "Second Store",

    categories: [

        {

            name: "Food"

        },

        {

            name: "Toys"

        }

    ]

},

在我的尝试中,我尝试在 while 内创建类别,但有一个 php 警告: end() expects parameter 1 to be array, null given


if( isset($stores) ) {

    if(  end($stores['id']) != $row["id"] )  {

            array_push($category_array, $row["categories"]);

    }


哔哔one
浏览 192回答 1
1回答
随时随地看视频慕课网APP
我要回答