帮助大阵列

时间:2011-05-04 03:12:33

标签: php arrays multidimensional-array

我是php的新手,我正在尝试使用数组过滤字符串中的一些单词,这是数组:

$array_lugares = array
(
array("barra"=>array
(
/*SENTIDO BARRA*/
"Sao conrado"=>array("-22.999743","-43.270694"),
"Elevado do Joa"=>array("-22.999429","-43.27317")
),
"zona sul"=>array
(
/*SENTIDO ZONA SUL:*/
"passarela da barra"=>array("-23.008346","-43.303708"),
"barra grill"=>array("-23,010576", "-43,302028"),
"lagoa barra"=>array("-22,997348", "-43,263200")
),
"recreio"=>array
(
/*SENTIDO RECREIO:*/
"passarela da barra"=>array("-23.008283","-43.303634"),
"rio mar"=>array("22.999958","-43.402648"),
"ribalta"=>array("-22,999753", "-43,409211")
)));

当我这样做时:

foreach($array_lugares[0]['zona sul'] as $lugar){
echo $lugar;
echo "</br>";
}

输出是:

Array
Array
Array

我怎样才能这样做:

barra
zona sul 
recreio

在输出中,有可能吗?

3 个答案:

答案 0 :(得分:3)

 foreach($array_lugares[0] as $k => $lugar){
   echo $k;
   echo "</br>";
 }

答案 1 :(得分:1)

那是因为你有一个多维数组,你也可以遍历$lugar;,它会给你正确的输出

更新

foreach($array_lugares[0]['zona sul'] as $lugar){
   foreach ($lugar as $value) {
     // further inside the array

   }

 echo "</br>"; 

} 

但我认为你应该重新审视你的代码,看看这是否真的是你想要处理数据的方式

答案 2 :(得分:0)

那是因为$array_logares[0]['zona sul']给你的是对象

array
(
/*SENTIDO ZONA SUL:*/
"passarela da barra"=>array("-23.008346","-43.303708"),
"barra grill"=>array("-23,010576", "-43,302028"),
"lagoa barra"=>array("-22,997348", "-43,263200")
)

并且每个元素一个数组(点数)。如果你想要名字(而不是点数组)你会这样做:

foreach(array_keys($array_logares[0]['zona sul']) as $lugar)

如果您想要名称​​和,请执行以下操作:

foreach($array_lugares[0] as $name => $lugar)