Intereting Posts
PHP избегает статических классов, чтобы избежать зависимостей, но мне нужно использовать глобальные везде Как мне импортировать продукты в Magento, используя прямое подключение к базе данных Пароль в md5 расшифрован на английском языке (PHP MYSQL) MySql – Случайная проблема с таблицами на разных серверах как передать все параметры запроса запроса на встроенные контроллеры в twig symfony 2? Zend Framework: правильный способ взаимодействия с базой данных? Как отправить электронную почту с локального сервера WAMP для отправки электронной почты Gmail Hotmail или так далее? Google Maps не может полностью загрузиться в jQuery nav-tab PHP Newbies: Как написать хороший код Как использовать Jquery-File-Upload PHP с базой данных в последней версии? Получить данные из url и сохранить в php Удаление повторяющихся значений в списке, разделенном запятыми, в PHP Включить короткие короткие теги PHP через .htaccess Проверьте, нет ли электронной почты в базе данных с помощью подготовленных инструкций специальные символы в контактной форме

stdClass to array?

у меня есть:

stdClass Object ( [0] => stdClass Object ( [one] => aaa [two] => sss ) [1] => stdClass Object ( [one] => ddd [two] => fff ) [2] => stdClass Object ( [one] => ggg [two] => hhh ) } 

и я должен получить это с помощью ключей, например:

 $var = $stdClass[0]; 

но у меня ошибка:

Неустранимая ошибка: нельзя использовать объект типа stdClass в качестве массива в

Возможно ли проанализировать этот массив stdClass для массива и использовать его с помощью клавиш?

Solutions Collecting From Web of "stdClass to array?"

Передайте его в массив:

 $array = (array)$stdClass; 

Если вы используете json_decode для преобразования этой строки JSON в объект, вы можете использовать второй параметр json_decode($string, true) и преобразовать объект в ассоциативный массив.

Если нет, то, что все остальные сказали и просто напечатали

$array = (array) $stdClass;

Ваша проблема, вероятно, решена с момента запроса, но для справки, быстрый ответ дяди-google:

 function objectToArray($d) { if(is_object($d)) { $d = get_object_vars($d); } if(is_array($d)) { return array_map(__FUNCTION__, $d); // recursive } else { return $d; } } 

Полная статья здесь . Примечание. Я никак не связан с оригинальным автором.

Бросьте это

 $array = (array) $stdObject; 

Конечно, вы можете typecast, $var = (array) $obj; , но я бы предложил ArrayAccess вашему классу.

Используя ArrayAccess , вы можете обрабатывать свои объекты и данные так, как если бы они были массивом или изначально как объект.

По сути, просто напечатайте его:

 $arr = (array)$obj; $var = $arr[0]; 

Но читайте здесь предостережения.

Бросьте его в массив. В настоящее время PHP не читается как массив.

 $array = (array)$stdClass; 

Это работало для меня. Декодирование и кодирование делают для регулярного массива

$array = json_decode(json_encode($object), True);

stdClass – объект, поэтому вы можете получить доступ к нему, как

 echo stdClass->one;