混合了JSON和数组(在PHP中)

时间:2014-02-12 13:22:11

标签: php sql arrays json foreach

这是我从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
}

有人看到我的错误吗?提前谢谢!

2 个答案:

答案 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/>");
}