【发布时间】:2014-07-29 11:36:02
【问题描述】:
我创建了一个简单的json 字符串以解码为data 数组,但我对解码后如何遍历数组感到非常困惑:
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
$data = json_decode($json, true);
for ($j = 0; $j < count($data); $j++) {
echo "$j: $data[$j]<br>";
}
?>
我似乎无法让这段代码工作,因为它说每个偏移量都是未定义的,所以我认为问题源于我对数组解码后的样子的理解。
当我执行var_dump(json_decode($json, true)) 时,我得到了这个结果:
array (size=5)
'a' => int 1
'b' => int 2
'c' => int 3
'd' => int 4
'e' => int 5
那么这到底是什么意思呢?数组indexes'a'、'b'、'c'、'd'和'e'分别是?如果是这样,那么我如何遍历每个这些以打印出它们的所有值?
【问题讨论】:
-
与
foreach。在此过程中不学习foreach,您是如何到达json_decode的? -
你有一个关联数组,而不是一个数值数组。在 PHP 文档中了解有关数组的更多信息:us2.php.net//manual/en/language.types.array.php。 “PHP 中的 JSON 数组是什么样的?” JSON 在任何地方看起来都一样。
[1,2,3]是一个数组,{"foo": "bar"}是一个对象。 -
$i=0;foreach($data as $item){ echo "$i: $item</br>";$i++;} -
不要忘记:php.net/array_keys
-
谢谢大家。我想我现在有了更好的理解。