php:循环遍历json数组

Posted

技术标签:

【中文标题】php:循环遍历json数组【英文标题】:php: loop through json array 【发布时间】:2011-06-11 12:02:22 【问题描述】:

我有一个 json 数组:

[
    
        "var1": "9",
        "var2": "16",
        "var3": "16"
    ,
    
        "var1": "8",
        "var2": "15",
        "var3": "15"
    
]

如何使用 php 循环遍历这个数组?

【问题讨论】:

使用 json_decode 将其转换为 PHP 数组。 【参考方案1】:

使用 json_decode() 解码 JSON 字符串,然后使用常规循环遍历它:

$arr = json_decode('["var1":"9","var2":"16","var3":"16","var1":"8","var2":"15","var3":"15"]');

foreach($arr as $item)  //foreach element in $arr
    $uses = $item['var1']; //etc

【讨论】:

为此 +1。这正是我想要做的,但是关联数组缺少 true 给了我一个错误。【参考方案2】:

如果需要关联数组,请将第二个函数参数设置为 true

如果需要关联数组,某些版本的 php 需要第二个参数 true

$json  = '["var1":"9","var2":"16","var3":"16","var1":"8","var2":"15","var3":"15"]';
$array = json_decode( $json, true );

【讨论】:

没有对第二个assoc 参数的版本特定参考【参考方案3】:

首先你必须解码你的 json :

$array = json_decode($the_json_code);

那么在 json 解码后你必须做 foreach

foreach ($array as $key => $jsons)  // This will search in the 2 jsons
     foreach($jsons as $key => $value) 
         echo $value; // This will show jsut the value f each key like "var1" will print 9
                       // And then goes print 16,16,8 ...
    

如果您想要特定的东西,只需要求这样的钥匙。把它放在最后一个 foreach 之间。

if($key == 'var1')
 echo $value;

【讨论】:

【参考方案4】:

使用json_decode将JSON字符串转换为PHP数组,然后对其使用普通的PHP数组函数。

$json = '["var1":"9","var2":"16","var3":"16","var1":"8","var2":"15","var3":"15"]';
$data = json_decode($json);

var_dump($data[0]['var1']); // outputs '9'

【讨论】:

这不会遍历数组。它只是检索第一个值?

以上是关于php:循环遍历json数组的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PHP 循环遍历 JSON 数组

php循环遍历json数组

php 循环遍历json数据

循环遍历数组数组php

怎样用for循环动态遍历json数组

如何在 PHP 中搜索 JSON 数组