这是我从SQL选择中得到的。数据是正确的,现在我想通过foreach来回应它。
Array ( [0] => stdClass Object ( [sql_column] => [{"1":"value1", "2":"value2", "3":"value3"}] ) )
我尝试过的(哪些不起作用)是:
$obj = json_decode($arr);
foreach($obj as $data){
echo $data->sql_column->1; //this should echo "value1", but it doesn't
}
有人看到我的错误吗?提前谢谢!
答案 0 :(得分:1)
如果$arr
是您发布的数组,那么您不能json_decode
它,因为它是一个数组,而不是JSON
字符串。
//First you need to get the string
$json = $arr[0]->sql_column;
//Then decode
$data = json_decode($json);
//Then loop
foreach($data as $key => $value){
echo "$key = $value \n";
}
答案 1 :(得分:1)
您的json似乎很复杂(双维数组),但您可以通过以下方式从中获取值:
foreach($arr as $data){
$json = json_decode($data->sql_column);
$temp = (array)$json[0];
foreach($temp as $k=>$v){
print($v."<br/>");
}
}
我希望你有个主意......
我使用foreach for $ arr来覆盖多个值,如果需要,可以省略:
$data=$arr[0];
$json = json_decode($data->sql_column);
$temp = (array)$json[0];
foreach($temp as $k=>$v){
print($v."<br/>");
}