Выполняя 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 );
Справка