如何在PHP中访问数组中的元素

时间:2017-03-05 12:12:25

标签: php arrays

您好我正在尝试从数组访问对象的属性,但似乎没有正确。我有一个以PHP格式发布的对象数组。

$classrooms = $_POST->client->classrooms

当我做var_dump($ classrooms)时,我得到如下结构:

array(1) {
[0]=>
array(2) {
[0]=>
object(stdClass)#5 (4) {
  ["classroomid"]=>
  int(2)
  ["classroom"]=>
  string(7) "Grade 1"
}
[1]=>
object(stdClass)#6 (4) {
  ["classroomid"]=>
  int(4)
  ["classroom"]=>
  string(9) "Grade 2"
  }
 }
}

我正在尝试使用PHP中的以下代码访问“教室”属性,但它不会输出任何内容。

foreach($classroom as $item) 
{
  echo $item['classroom'];
}

但如果尝试这样(通过硬编码索引)它给了我正确的教室名称,但我无法传递索引,因为我不知道数组中有多少。

 foreach($classroom as $item) 
{
  echo $item[0]['classroom'];
}

感谢您阅读本文。

2 个答案:

答案 0 :(得分:2)

试试这个,

 $lists = [];
    foreach($classroom as $item) 
    {
       foreach($item as $k => $v){
         $lists[] =  $v->classroom; // or $v->classroom;
       }
    }

print_r($lists);

答案 1 :(得分:2)

对于stdClass对象,您必须使用" - >"获得关键价值。

  foreach($classroom as $subarray) {
      foreach($subarray as $item) {
        echo $item->classroom;
      }
  }

如果您使用$ item ['教室'],则会抛出错误: PHP致命错误:未捕获错误:无法使用stdClass类型的对象作为数组。