snowflakes74
snowflakes74

Reputation: 1307

How to access an element in an array in PHP

Hi I am trying to access a property of an object from an array but seems to not getting it correctly. I have an array of objects that is posted in PHP.

$classrooms = $_POST->client->classrooms

when I do a var_dump($classrooms) I get the structure like below:

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"
  }
 }
}

I am trying to access "classroom" property using following code in PHP but it does not output anything.

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

But if try like this (by hardcoding index) it gives me correct name of classrooms but I cannot pass the index as I do not know how many will be in the array.

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

Thank you for reading this.

Upvotes: 0

Views: 64

Answers (2)

Ankit Vaishnav
Ankit Vaishnav

Reputation: 46

For stdClass object you have to use "->" to get the key value.

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

If you use $item['classroom'] it will throw an error: PHP Fatal error: Uncaught Error: Cannot use object of type stdClass as array.

Upvotes: 2

Rahul
Rahul

Reputation: 18557

Try like this,

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

print_r($lists);

Upvotes: 2

Related Questions