将json分支数组转换为php对象

时间:2016-01-21 05:32:51

标签: php arrays json

在下面的代码中,我想使用get_data显示echo但不能解码/显示分支数组。所以,我的问题是如何将分支数组转换为PHP对象。

Json回复:

{"status":1,"msg":"fetched Succesfully","user_data":{"d91c2d21af80002a3dd6ffc76f62bb9f89b6e0ba":{"name":"PRATYUSH","user_year":"2013","get_data":"d91c2d21af80002a3dd6ffc76f62bb9f89b6e0ba","is_active":1,"data_no":"ghjgjj2XXXXXXoioo7","user_bin":"77","is_exp":"N"}}}

PHP代码:(使用curl后)

$response = json_decode($o,true);
$status=$response["status"];
$msg=$response["msg"];
$user_data=$response["user_data"][0]["get_data"];

结果:

echo $status;//(working)
echo "<br>";
echo $msg;//(working)
echo "<br>";
echo $user_data;//(Not working)

echo User_data无效。

2 个答案:

答案 0 :(得分:1)

所以你想获得get_data的价值。如果d91c2d21af80002a3dd6ffc76f62bb9f89b6e0ba未知,请尝试这种方式。

$user_data_arr=$response["user_data"]; 
foreach($user_data_arr AS $user_data_obj)
{
    echo $user_data_obj['get_data'];// here is your desired value
}

使用foreach循环,您不必查找索引,您可以轻松获取值。

完整代码

 $response = json_decode($o,true);
 $status=$response["status"];
 $msg=$response["msg"];
 $user_data="";
 $user_data_arr=$response["user_data"]; 
  foreach($user_data_arr AS $user_data_obj)
  {
    $user_data = $user_data_obj['get_data'];// here is your desired value
  }
 echo $status;
 echo "<br>";
 echo $msg;
 echo "<br>";
 echo $user_data;//will work

答案 1 :(得分:0)

更改

$user_data=$response["user_data"][0]["get_data"];

到这个

$user_data=$response["user_data"]["d91c2d21af80002a3dd6ffc76f62bb9f89b6e0ba"]["get_data"];