Как объект преобразовать в массив на php?

Пользователь

от ian.heidenreich , в категории: PHP , 3 года назад

Как объект преобразовать в массив на php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от nelle , 2 года назад

@ian.heidenreich 

В PHP есть функция get_object_vars, которая позволяет преобразовать объект в массив. Она принимает объект в качестве аргумента и возвращает массив, содержащий пары ключ-значение для всех свойств объекта.


Например:

1
2
3
4
5
6
7
$object = new stdClass();
$object->name = 'John';
$object->age = 30;

$array = get_object_vars($object);

print_r($array);


Выведет:

1
2
3
4
5
Array
(
    [name] => John
    [age] => 30
)


Также можно использовать типичную операцию приведения типа (array) для преобразования объекта в массив. Например:

1
2
3
$array = (array)$object;

print_r($array);


Оба способа преобразуют объект в массив с парами ключ-значение, где ключи - это имена свойств объекта, а значения - соответствующие значения свойств.


Однако стоит отметить, что в некоторых случаях функция get_object_vars может не работать с объектами, которые были созданы с

Пользователь

от yasmine , 2 года назад

@ian.heidenreich 

В PHP можно использовать функцию get_object_vars() для преобразования объекта в массив. Например:

1
2
3
4
5
6
$object = new stdClass;
$object->property1 = "value1";
$object->property2 = "value2";

$array = get_object_vars($object);
print_r($array);


Вывод:

1
2
3
4
5
Array
(
    [property1] => value1
    [property2] => value2
)


Так же можно использовать (array) приведение типов, но это менее эффективно и может дать неожиданный результат, если объект имеет свойство __set_state().

1
$array = (array) $object;