0

json_encodeの結果であるオブジェクト$objがあり、構造は次のようになっています。

stdClass Object (
    [page] = 1
    [size] = -1
    [total] = 4
    [collection] = Array
        (
            [0] = stdClass Object
                (
                    [id] = 4e87de8e1a8840999f907fad
                    [description] = ffffffff
                    [code] = 82666
                    [status] = ACTIVE
                )

            [1] = stdClass Object
                (
                    [id] = 4e8b4b53fda5efeeec370e89
                    [description] = gggggggggg
                    [code] = 41874
                    [status] = ACTIVE
                )

            [2] = stdClass Object
                (
                    [id] = 4e8b4b5afda5efeeec370e8a
                    [description] = hhhhhhhhhhhhh
                    [code] = 15130
                    [status] = ACTIVE
                )

            [3] = stdClass Object
                (
                    [id] = 4e90a753e91a2713c95b56a0
                    [description] = jjjjjjjjjjjjjj
                    [code] = 323307
                    [status] = ACTIVE
                )

            [4] = stdClass Object
                (
                    [id] = 4e9e08da79597f0d3daba159
                    [description] = kkkkkkkkkkkkkk
                    [code] = 11310
                    [status] = ACTIVE
                )
        ) )

値$codeがあり、$ obj-> collectionで検索したいのですが、$ id =を、コードプロパティが$codeの値と等しいオブジェクトのidプロパティに設定します。私は今、それぞれのコードプロパティをチェックし、trueの場合は$ idを設定する条件付きループでこれを行っていますが、OO PHPにかなり慣れていないために、コマンドを見逃している可能性があると考えています。

これを改善できる方法はありますか?

4

1 に答える 1

0

これで始めましょう:stdClass配列に勝る利点はありません(「かっこよく見える」という事実を除けば)。実際にはOOPではありません。stdClassesの代わりに配列を使用するにはtrue、2番目のパラメーターとしてjson_decode():を使用します。

json_decode($json_string, true);

配列を返します。


それ以外は、$codeを繰り返してチェックするのが道のようです。あなたのためにそれを行うPHP関数はありません(神に感謝します)。ただし、配列には、配列関数で操作できるという明確な利点があります(効率の向上は言うまでもありません)。

于 2012-08-22T21:12:13.743 に答える