【问题标题】:How to loop through a specific depth in an array?如何遍历数组中的特定深度?
【发布时间】:2014-08-17 22:06:22
【问题描述】:

我正在提取 JSON 信息,并留下一个巨大的嵌套数组。

示例架构如下:

'messages' =>
    '0' => 
        'title' => 'foo'
        'body' => 'bar'
    '1' =>
        ...
'stories'
    'foo' => 'bar'

在这种情况下,我只想从 '0' 和 '1' 以及它们的所有子项(标题和正文)开始获取内容。 'stories' 将被完全忽略,因为它比 0 和 1 高一个深度。0 和 1 是一个自动生成的列表,整数值将根据需要动态地变高,因此会有所不同。

干杯!

【问题讨论】:

  • 它们是否总是数字后跟一个单词,并且总是你不想要的单词(加上单词下面的任何内容)
  • @popeygilbert 它总是数字,我想要所有的数字孩子
  • 所以你想递归遍历数组的所有元素,并捕获索引为数字 0 和 1 的所有内容?
  • ...并且仅在特定深度?

标签: php recursion iteration


【解决方案1】:
foreach($array['messages'] as $key => $val){
    if($key == 0 OR $key == 1){
        $new_array[] = $val;
    }
}

$new_array 就会有相关的内容。这假设您仅引用数组的 messages 部分。如果还有其他要解析/操作的子数组,则必须在 foreach 循环中调整条件。

然后您可以根据需要解析/操作$new_array,并忽略$array 中不需要的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    • 2020-02-22
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多