【问题标题】:What does a JSON array look like in PHP? [duplicate]PHP 中的 JSON 数组是什么样的? [复制]
【发布时间】: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&lt;/br&gt;";$i++;}
  • 不要忘记:php.net/array_keys
  • 谢谢大家。我想我现在有了更好的理解。

标签: php arrays json


【解决方案1】:

PHP 中的数组与 JavaScript(或 Json)中的数组不同。但是,您在这里看到的是:

{"a":1,"b":2,"c":3,"d":4,"e":5}

实际上并不是一个Json数组,而是一个Json对象。 abcde 是该对象的属性(有点像 PHP 数组中的索引)。

要遍历此对象的属性,您可以使用foreach 循环:

$data = json_decode($json, true);

foreach ($data as $key => $value) {
    echo "$key: $value<br>";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    • 2013-06-08
    • 2023-03-17
    • 1970-01-01
    • 2011-09-14
    相关资源
    最近更新 更多