我有一个使用guzzle / php的应用程序向休息服务发出请求。
当它产生响应时,它包含嵌套数组和对象:
[exampleBalances] =>数组(
[0] => stdClass对象(
[balance] => 6
[name] =>奖一
[prizeCode] => 38
)
[1] => stdClass对象(
[balance] => 5
[name] =>奖二
[prizeCode] => 20
)
[2] => stdClass对象(
[balance] => 4
[name] =>四奖四
[prizeCode] => 39
)
)
到目前为止,我一直在根据订单提取价值:
$ prizeThree = $ response-> exampleBalances ['3'] - > balance;
但是,如果客户为0,服务将不会显示任何“奖品”,因此如果添加了新项目,上述示例将不再准确:
[exampleBalances] =>数组(
[0] => stdClass对象(
[balance] => 6
[name] =>奖一
[prizeCode] => 38
)
[1] => stdClass对象(
[balance] => 5
[name] =>奖二
[prizeCode] => 20
)
[2] => stdClass对象(
[balance] => 8
[name] =>奖三
[prizeCode] => 54
)
[3] => stdClass对象(
[balance] => 4
[name] =>四奖四
[prizeCode] => 39
)
)
有没有办法定位正确的元素,而不使用它在响应中出现的顺序?
我找不到任何文件,但很难传达这个问题。我当时认为可能会创建一个检查元素内部值的条件(最好是'奖品代码')。非常感谢任何帮助。
答案 0 :(得分:0)
在PHP 5.5.0或更高版本中,您可以使用array_column()函数执行此搜索:
$index = array_search($prizeCodeSearch, array_column($exampleBalances, 'prizeCode'));
$element = $exampleBalances[$index];