2011-02-28 97 views
1

所以我有一些数据,是从一个数据库查询回来,得到的阵列(print_r的得到)看起来是这样的(它分配给一个名为$ locationData VAR):问题访问嵌套关联数组的元素

Array 
(
    [0] => Array 
     (
      [id] => 1 
      [location_name] => Cook Minnesota 
      [location_lat] => 47.72037 
      [location_long] => -90.32667 
     ) 

    [1] => Array 
     (
      [id] => 2 
      [location_name] => Lake Minnesota 
      [location_lat] => 47.18238 
      [location_long] => -91.35301 
     ) 

    [2] => Array 
     (
      [id] => 3 
      [location_name] => St. Louis Minnesota 
      [location_lat] => 46.83572 
      [location_long] => -91.96299 
     ) 
) 

我有一个foreach循环,需要从每个抓取location_name。它看起来像这样:

foreach ($locationData as $location => $value) { 
    echo '<p>name ' . $location['location_name']. '</p>'; 
} 

我99%肯定这应该工作;它基本上是我以前使用过十几次的相同代码。但是回声没有返回任何东西 - 甚至没有静态文本(<p>name)。它不会抛出任何错误,并且如果我尝试执行print_r($ location),我什么也得不到。

任何想法?我相信这件事很简单。

回答

2

你想$value['location_name']因为$value代表阵列而$location表示数组的索引:

echo '<p>name ' . $value['location_name']. '</p>'; 
+0

+1停止正在快速该死:) – 2011-02-28 22:10:26

+0

感谢。我曾尝试过,似乎没有工作,但事实证明,实际问题与PHP无关 - 我正在用php循环填充一个javascript数组变量,并且将echo语句放在var的数组标签中,这意味着直到我创建视图源时才能看到值。 – EmmyS 2011-02-28 22:11:22

+0

@Shehi:哈,好一个:) – mailo 2011-02-28 22:12:01

0

是:

foreach ($locationData as $location => $value) { 
    echo '<p>name ' . $value['location_name']. '</p>'; 
}