您好我正在尝试从数组访问对象的属性,但似乎没有正确。我有一个以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'];
}
感谢您阅读本文。
答案 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类型的对象作为数组。