【问题标题】:How do I loop through this array and call value/s?如何循环遍历这个数组并调用 value/s?
【发布时间】:2015-01-18 11:15:27
【问题描述】:

我首先有一个 XML 文件,我将其转换为如下所示的数组。但我遇到的问题是遍历数组并调用值。例如,我将如何遍历动漫以获取动漫名称“攻击泰坦”或开始时间、“上午 9.30”等?我怎样才能做到这一点?谢谢。

这是数组:

Array (
 [anime] => Array (
  [0] => Array (
   [id] => 1
    [content] => Array (
     [action_adventure_channel] => Array (
      [0] => Array (
       [name] => Array (
        [0] => Attach on Titan
        )
        [start_time] => Array (
         [0] => 09.30am
        )
        [end_time] => Array (
         [0] => 10.30am
        )
       )
      )
     )
    )
    [1] => Array (
     [id] => 2
     [content] => Array (
      [crime_drama_channel] => Array (
       [0] => Array (
        [name] => Array (
         [0] => Death Note
        )
        [start_time] => Array (
         [0] => 12.00pm
        )
        [end_time] => Array (
         [0] => 1.00pm
        )
       )
      )
     )
    )
   )
  )

编辑:这是我转换为上述数组的 XML 版本:

<?xml version="1.0" encoding="UTF-8"?>
<anime_data>
    <anime id="1">
    <action_adventure_channel>
        <name>Attach on Titan</name>
        <start_time>09.30am</start_time>
        <end_time>10.30am</end_time>
    </action_adventure_channel>
    </anime>
    <anime id="2">
    <crime_drama_channel>
        <name>Death Note</name>
        <start_time>12.00pm</start_time>
        <end_time>1.00pm</end_time>
    </crime_drama_channel>
    </anime>
</anime_data>

【问题讨论】:

  • 这些数据是从某个地方获取的,还是您可以更改数组的格式?因为我觉得很奇怪,名称属性是一个数组,因为每个元素应该只有一个名称。
  • 嗯,xml 会容易得多...
  • 或者你可以直接使用SimpleXML 并直接解析这些值。
  • 这个数组不是一个有效的php数组!
  • 我已经发布了上面的xml版本。我也认为它看起来不对,并试图对其进行更改以使其看起来更像一个数组,但它不起作用。那我怎么能把它转换成一个合适的数组呢?或使用 SimpleXML 检索值?请问?

标签: php arrays xml


【解决方案1】:

您可以从一开始就使用SimpleXML。然后使用foreach 遍历。

$xml = simplexml_load_file('path/to/xmlfile.xml');
foreach($xml as $anime) {
    $id = $anime->attributes()->id;
    foreach($anime as $info) {
        $name = $info->name;
        $start_time = $info->start_time;
        $end_time = $info->end_time;
    }
}

Sample Output

【讨论】:

  • 谢谢,这正是我所需要的!
  • @Kaal 很高兴这有帮助
猜你喜欢
  • 1970-01-01
  • 2022-11-18
  • 2017-06-07
  • 1970-01-01
  • 2017-09-12
  • 2010-11-01
  • 2017-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多