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数组的主要内容,如果未能解决你的问题,请参考以下文章