我有一个对象$obj,它是json_encode的结果,其结构类似于:
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->集合中搜索,将$id=设置为代码属性等于$code值的对象的id属性。我现在用一个条件循环来检查每个的代码属性,如果为true,则设置$id,但我认为可能有一个命令我错过了,因为我对OO PHP相当不熟悉。
有什么办法可以改进吗?
让我以这个开头:stdClass
与数组相比没有优势(除了它可能"看起来很酷"之外)。它实际上不是OOP。要使用数组而不是stdClass
es,请将true
作为json_decode()
:的第二个参数
json_decode($json_string, true);
将返回一个数组。
除此之外,迭代和检查$代码似乎是最好的方法。没有PHP函数可以帮你做到这一点(感谢上帝)。然而,阵列具有能够由阵列函数操纵的独特优势(更不用说效率提高了)。