2017-03-05 29 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