我想在另一个数组中嵌入一个数组,我的代码与此类似
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()
?
答案 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。