1

我有一系列具有如下 ID 和类别的应用程序:

[apps] => Array
            (
                [0] => stdClass Object
                    (
                        [id] => 0
                        [categoryid] => 0
                    )

                [1] => stdClass Object
                    (
                        [id] => 31265
                        [categoryid] => 12
                    )

                [2] => stdClass Object
                    (
                        [id] => 15965
                        [categoryid] => 2
                    )

                [3] => stdClass Object
                    (
                        [id] => 16554
                        [categoryid] => 12
                    )
)

我正在尝试根据此请求获取某个类别的所有应用程序。因此,结果输出为:

For CategoryId 12:
----------------
[apps] => Array
            (
                [0] => 31265
                [1] => 16554
            )

For CategoryId 2:
----------------
[apps] => Array
            (
                [0] => 15965
            )

For CategoryId 0:
----------------
[apps] => Array
            (
                [0] => 0
            )

我相信我需要使用嵌套的 foreach 循环,但是有没有一种有效的方法?

谢谢

4

1 回答 1

3

您可以循环浏览它们,并将它们放入类别数组中:

foreach ( $apps as $app ) {
  $catArray[ $app[CategoryID] ][] = $app;
}

这应该产生一个数组,其键代表一个类别,其嵌套数组代表该类别中的那些应用程序。

我已经在网上做了一个演示:http: //codepad.org/WZXIvQ58

于 2012-04-10T21:24:56.200 回答