【问题标题】:Accessing element in multi-dimensional array, php访问多维数组中的元素,php
【发布时间】:2015-07-05 20:30:14
【问题描述】:

我目前正在用 php 开发一个网站。目前我正在从我的数据库中的一个表中检索所有数据并将其作为一个名为'$divingTrips' 的数组返回。使用print_r(array_values($divingTrips)) 函数以以下格式返回:

Array ( [0] => stdClass Object (
                         [DivingTripID] => 1 
                         [DivingTripName] => Newcastle Dive
                         [DivingTripLocation] => Newcastle   
                         [DivingTripDay] => Monday 
                         [DivingTripTime] => 12:06:57 ) 

       [1] => stdClass Object ( 
                         [DivingTripID] => 2
                         [DivingTripName] => Portrush Dive 
                         [DivingTripLocation] => Portrush 
                         [DivingTripDay] => Thursday 
                         [DivingTripTime] => 12:06:57 ) )

我现在正尝试访问数组中的单个元素以填充下拉菜单和其他目的。我正在尝试这个来访问数组:

echo  $divingTrips[0]['DivingTripID'];

我本来希望这会回显值“1”,但是,这不起作用..有人可以告诉我我做错了什么吗? 非常感谢。

【问题讨论】:

  • echo $divingTrips[0]->DivingTripID; 这不是一个多维数组,它是一个对象数组
  • 谢谢你,马克,成功了!没有意识到它不是多维的。 @MarkBaker
  • 检查你的代码,你正在获取对象而不是数组..这就是问题

标签: php multidimensional-array


【解决方案1】:

问题是您试图将 stdClass 作为数组访问。 它不是一个数组,所以你不能以同样的方式访问它。

在我看来,您正试图从数据库中获取行作为 php 对象,但在此过程中出现了问题。

【讨论】:

    【解决方案2】:

    echo $divingTrips[0]['DivingTripID'];

    上述语句将不起作用 bcz $divingTrips 数组不是将项目存储为数组,而是存储为对象。

    请验证从数据库中获取数组的 php 代码。

    【讨论】:

      【解决方案3】:
      <?php
      
      $divingTrips = [];
      $divingTrips[] = ["DivingTripID" => 1];
      
      var_dump($divingTrips[0]["DivingTripID"]);
      

      <?php
      
      $divingTrips = [(object) ["DivingTripID" => 1]];
      
      var_dump($divingTrips[0]->DivingTripID);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-08
        • 2023-03-11
        • 1970-01-01
        • 2020-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-29
        相关资源
        最近更新 更多