【问题标题】:Issue accessing elements of nested associative array问题访问嵌套关联数组的元素
【发布时间】:2011-02-28 22:07:04
【问题描述】:

所以我有一些从数据库查询返回的数据,结果数组(使用 print_r 获取)看起来像这样(它被分配给一个名为 $locationData 的变量):

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% 确定这应该可行;它基本上与我之前使用过十几次的代码相同。但回声没有返回任何东西——甚至没有返回静态文本 (&lt;p&gt;name)。它没有抛出任何错误,如果我尝试执行 print_r($location),我什么也得不到。

有什么想法吗?我敢肯定这很简单。

【问题讨论】:

    标签: php arrays loops


    【解决方案1】:

    您想要$value['location_name'],因为$value 代表数组,而$location 代表数组的索引:

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

    【讨论】:

    • 谢谢。我确实尝试过,但它似乎不起作用,但事实证明实际问题与 PHP 无关 - 我正在使用 php 循环填充一个 javascript 数组变量,并将 echo 语句放在 var 的数组标记中,这意味着我在查看源代码之前看不到这些值。
    • @mailo:不,EmmyS 对我们评论的回答是“好”一个 :) 现在我真的迷路了。
    【解决方案2】:

    它是:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-25
      • 2021-07-09
      • 2018-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-15
      • 1970-01-01
      相关资源
      最近更新 更多