从索引获取值

时间:2015-10-25 08:45:29

标签: php arrays json json-deserialization

我有一串格式如下的数据:

[{"pr_a_w":"10","pr_a_we":"10","pr_c_w":"10","pr_c_we":"10"},{"pr_a_w":"20","pr_a_we":"20","pr_c_w":"20","pr_c_we":"20"},{"pr_a_w":"111","pr_a_we":"11","pr_c_w":"111","pr_c_we":"111"}]

字符串没有像常规数组那样的索引/数字,我发现很难提取单个值,例如我可以使用常规数组:

$string[0]["pr_a_w"] 

获取" pr_a_w"的第一个实例我可以使用:

$string[1]["pr_a_w"] 

获取第二个实例等。

是否可以根据数字来获取此字符串中的单个值?

2 个答案:

答案 0 :(得分:2)

您拥有的是有效的JSON(序列化对象数组),因此您可以使用json_decode将序列化数据转换为本机PHP数组:

$array = json_decode('[{"pr_a_w":"10","pr_a_we":"10","pr_c_w":"10","pr_c_we":"10"},{"pr_a_w":"20","pr_a_we":"20","pr_c_w":"20","pr_c_we":"20"},{"pr_a_w":"111","pr_a_we":"11","pr_c_w":"111","pr_c_we":"111"}]',true);
然后

$array将允许您完全按照您的说法做上述事情。

$array[0]["pr_a_w"]; // will give you 10
$array[1]["pr_a_w"]; // will give you 10

答案 1 :(得分:1)

尝试这样,不需要使用数组索引访问。如果访问错误的索引,您将收到错误。

$json_arr= json_decode('[{"pr_a_w":"10","pr_a_we":"10","pr_c_w":"10","pr_c_we":"10"},{"pr_a_w":"20","pr_a_we":"20","pr_c_w":"20","pr_c_we":"20"},{"pr_a_w":"111","pr_a_we":"11","pr_c_w":"111","pr_c_we":"111"}]',true);

foreach($json_arr as $row){
    echo $row['pr_a_w']."<br>";
}