1. Extracted from my laravel controller:
..
..
$data = json_decode($response, true);
return $data;
..
..
return view('homepage')->with('homeExclusives', $homeExclusives);
array(4) {
["success"]=> bool(true)
["status"]=> int(200)
["bundle"]=> array(2) {
[0]=> array(631) {
["StreetDirPrefix"]=> string(2) "SW"
["DistanceToStreetComments"]=> NULL
}
[1]=> array(631) {
["StreetDirPrefix"]=> string(2) "NE"
["DistanceToStreetComments"]=> NULL
}
}
答案 0 :(得分:1)
对于您示例中的数据,您可以使用array_column并指定StreetDirPrefix
作为列键。
$res = array_column($array["bundle"], "StreetDirPrefix");
print_r($res);
答案 1 :(得分:0)
在不知道您遇到什么错误的情况下,我的解决方案将是这样的:
<?php
if (is_array($data) && is_array($data["bundle"]) ) {
foreach ($data["bundle"] as $tmpKey => $tmpVal) {
if (isset($tmpVal["StreetDirPrefix"])) {
echo $tmpKey." => ".$tmpVal["StreetDirPrefix"]."\n";
}
}
}
?>
我一直喜欢验证数组,因此,如果您的$data
变量或$data["bundle"]
子节不是数组,那么您将一无所获。甚至没有错误。
我在这里有一个工作示例: https://www.seeque-secure.dk/demo.php?id=PHP+how+to+loop+over+nested+JSON+Object
编辑:
(如果我了解您的话) 验证阵列后,您要做的就是重复内部验证,如下所示:
<?php
if (is_array($data) && is_array($data["bundle"]) ) {
foreach ($data["bundle"] as $tmpKey => $tmpVal) {
if (isset($tmpVal["StreetDirPrefix"])) {
echo $tmpKey." => ".$tmpVal["StreetDirPrefix"]."\n";
}
if (isset($tmpVal["UnparsedAddress"])) {
echo $tmpVal["UnparsedAddress"]."\n";
}
if (isset($tmpVal["SalePrice"])) {
echo $tmpVal["SalePrice"]."\n";
}
//...... ect.....
}
}
?>