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 に答える