通过另一个数组php内的数组循环

时间:2012-04-18 00:35:59

标签: php

我想在另一个数组中嵌入一个数组,我的代码与此类似

array(
'type' => 'FeatureCollection',
'features' => array(
    array(
        'type' => 'Feature',
        'geometry' => array(
            'coordinates' => array(-94.34885, 39.35757),
            'type' => 'Point'
        ), // geometry
        'properties' => array(
            // latitude, longitude, id etc.
        ) // properties
    ), // end of first feature
    array( ... ), // etc.
) // features
)

外部(特征)封装了许多其他数组。我需要遍历从已经解码的json文件中提取的变量 - 我将如何遍历这些数据集?一个foreach()

2 个答案:

答案 0 :(得分:2)

你知道阵列的孩子的深度/没有吗?如果你知道深度总是保持不变?如果对这两个问题的回答都是肯定的,那么foreach就应该做到这一点。

$values = array(
'type' => 'FeatureCollection',
'features' => array(
    array(
        'type' => 'Feature',
        'geometry' => array(
            'coordinates' => array(-94.34885, 39.35757),
            'type' => 'Point'
        ), // geometry
        'properties' => array(
            // latitude, longitude, id etc.
        ) // properties
    ), // end of first feature
    array('..'), // etc.
) // features
);

foreach($values as $value)
{
    if(is_array($value)) {
        foreach ($value as $childValue) {
            //.... continues on 
        }
    }
}

但是,如果回答这两个问题中的任何一个是否定义,我会使用递归函数和foreach,就像这样。

public function myrecursive($values) {
    foreach($values as $value)
    {
        if(is_array($value)) {
            myrecursive($value);
        }
    }
}

答案 1 :(得分:0)

嵌套的foreach。

$myData = array( array( 1, 2, 3 ), array( 'A', 'B', 'C' ) )

foreach($myData as $child) 
  foreach($child as $val)
    print $val;

将打印123ABC。