2017-03-05 27 views
0

嗨我想从数组中访问对象的属性,但似乎没有得到它正确。我有一个张贴在PHP中的对象数组。如何访问PHP中的数组中的元素

$classrooms = $_POST->client->classrooms 

当我做了的var_dump($教室)我得到的结构如下图所示:

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']; 
} 

感谢您阅读本文。

+0

你在数组中有一个数组,所以你可能想'foreach($ classroom [0] as ...)'或者使用两个foreach循环。 – Rizier123

回答

2

尝试这样,

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

print_r($lists); 
+0

对不起,没有工作,因为不会回应任何事情 – snowflakes74

+0

哇!不知道可以这样做。谢谢。 – snowflakes74

2

对于stdClass的对象,您必须使用 “ - >” 拿到钥匙值。

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

如果使用$项目[“课堂”]会引发错误: PHP致命错误:未捕获的错误:无法使用类型为stdClass的对象为数组。

+0

工作完美,很整齐。 – snowflakes74