Как получить доступ к объекту объекта (элемента stdClass Object) элемента / элемента массива?

Выполняя print_r() в моем массиве, я получаю следующее:

 Array ( [0] => stdClass Object ( [id] => 25 [time] => 2014-01-16 16:35:17 [fname] => 4 [text] => 5 [url] => 6 ) ) 

Как я могу получить доступ к определенному значению в массиве? Следующий код не работает из-за объекта stdClass

 echo $array['id']; 

Чтобы получить доступ к элементу массива, вы используете $array['KEY'];

Чтобы получить доступ к члену объекта, вы используете $obj->KEY;

Чтобы получить доступ к элементу объекта внутри массива объектов:
$array[0] // Получить первый объект в массиве
$array[0]->KEY // затем доступ к его ключу

Вы можете также перебрать массив таких объектов:

 foreach ($arrayOfObjs as $key => $object) { echo $object->object_property; } 

Подумайте о массиве как о наборе вещей. Это мешок, в котором вы можете хранить свои вещи и давать им уникальный идентификатор (ключ) и получать к ним доступ (или вынимать вещи из сумки) с помощью этого ключа. Я хочу, чтобы все было просто, но эта сумка может содержать и другие сумки тоже 🙂

Обновление (это может помочь кому-то лучше понять):

Массив содержит пары « key » и « value ». Предоставление ключа для элемента массива необязательно, и в этом случае ему автоматически присваивается числовой ключ, который начинается с 0 и продолжает увеличиваться на 1 для каждого дополнительного члена. Мы можем получить «значение» из массива с помощью « key ».

Таким образом, мы можем определить массив следующими способами (по отношению к ключам):

Первый метод:

 $colorPallete = ['red', 'blue', 'green']; 

Вышеуказанный массив будет автоматически назначен цифровым клавишам. Таким образом, ключ, назначенный на красный, будет 0, для синего 1 и так далее.

Получение значений из указанного массива:

 $colorPallete[0]; // will output 'red' $colorPallete[1]; // will output 'blue' $colorPallete[2]; // will output 'green' 

Второй метод:

 $colorPallete = ['love' => 'red', 'trust' => 'blue', 'envy' => 'green']; // we expliicitely define the keys ourself. 

Получение значений из указанного массива:

 $colorPallete['love']; // will output 'red' $colorPallete['trust']; // will output 'blue' $colorPallete['envy']; // will output 'green' 

Попробуйте это, работая отлично –

 $array = json_decode(json_encode($array), true); 

Попробуй это:

 echo $array[0]->id; 

У вас есть массив. Массив PHP в основном представляет собой «список вещей». В вашем массиве есть одна вещь. Эта вещь – стандартный класс. Вы должны либо удалить вещь из своего массива

 $object = array_shift($array); var_dump($object->id); 

Или ссылайтесь на вещь по ее индексу в массиве.

 var_dump( $array[0]->id ); 

Или, если вы не знаете, сколько вещей в массиве, переберитесь по массиву

 foreach($array as $key=>$value) { var_dump($value->id); var_dump($array[$key]->id); } 

Как насчет чего-то подобного.

 function objectToArray( $object ){ if( !is_object( $object ) && !is_array( $object ) ){ return $object; } if( is_object( $object ) ){ $object = get_object_vars( $object ); } return array_map( 'objectToArray', $object ); } 

и вызовите эту функцию с помощью объекта

 $array = objectToArray( $yourObject ); 

Справка