按键引用PHP子数组

时间:2014-06-26 15:09:58

标签: php arrays xml json

我正在玩PHP 5.4来处理从HTTP API返回的一些数据。数据以XML格式返回,然后使用以下内容将其转换为数组:

$xml = simplexml_load_string($resp);
$json = json_encode($xml);
$arr = json_decode($json, true);

这给了我数组形式的数据(如果有更好的方法,请告诉我!)。结果是以下示例数组:

array (
  '@attributes' =>
  array (
    'status' => 'success',
    'code' => '19',
  ),
  'result' =>
  array (
    '@attributes' =>
    array (
      'total-count' => '1',
      'count' => '1',
    ),
    'user' =>
    array (
      'entry' =>
      array (
        0 =>
        array (
          '@attributes' =>
          array (
            'name' => 'chris',
          ),
          'phash' => 's98djf384jr0oq8jf8j3948jfw',
        ),
        1 =>
        array (
          '@attributes' =>
          array (
            'name' => 'test',
          ),
          'phash' => '9a8sdfu9n2308ja8fj34ojr9a0',
        ),
      ),
    ),
  ),
)

我想弄清楚的是如何正确引用数组的各种元素。我已尝试通过echo $ arr [0] [0]之类的索引进行引用,但这并没有返回任何内容,我无法找到如何通过键引用子数组。

1 个答案:

答案 0 :(得分:1)

这在PHP手册中有详细记载。

http://www.php.net/manual/en/language.types.array.php

PHP中的数组是键/值对。如果未指定密钥,PHP将使用数字索引。

您可以访问$arr['@attributes']['status']

的值

要检查密钥是否存在,您可以使用isset($arr['@attributes'])array_key_exists('@attributes',$arr)

列举

foreach($arr as $key=>$value) { .... }

http://ca1.php.net/manual/en/control-structures.foreach.php