0

配列を別の配列内にネストしたいのですが、私のコードは次のようになります

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()?_

4

2 に答える 2

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 
        }
    }
}

しかし、これら2つの質問のいずれかの答えが「いいえ」の場合、foreachとともに再帰関数を使用します。このようなものです。

public function myrecursive($values) {
    foreach($values as $value)
    {
        if(is_array($value)) {
            myrecursive($value);
        }
    }
}
于 2012-04-18T01:25:53.647 に答える
0

ネストされたforeach。

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

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

123ABCを印刷します。

于 2012-04-18T00:39:38.783 に答える