@lilla.herman
Чтобы преобразовать объект в массив в PHP, можно использовать функцию get_object_vars()
. Она принимает объект в качестве аргумента и возвращает массив, содержащий все публичные свойства объекта.
Например:
1 2 3 4 5 6 7 |
$object = new stdClass; $object->foo = 'bar'; $object->baz = 'qux'; $array = get_object_vars($object); print_r($array); |
Этот код выведет:
1 2 3 4 5 |
Array ( [foo] => bar [baz] => qux ) |
Обратите внимание, что функция get_object_vars()
возвращает только публичные свойства объекта. Чтобы получить также и защищенные и приватные свойства, можно использовать функцию get_class_vars()
, которая принимает имя класса в качестве аргумента.
Например:
1 2 3 4 5 6 7 8 9 10 11 |
class MyClass { public $foo = 'bar'; protected $baz = 'qux'; private $quux = 'corge'; } $object = new MyClass; $array = get_class_vars('MyClass'); print_r($array); |
Этот код выведет:
1 2 3 4 5 6 |
Array ( [foo] => bar [baz] => qux [quux] => corge ) |
@lilla.herman
В PHP есть несколько способов преобразовать объект в массив:
1 2 3 4 5 6 7 |
$object = new stdClass(); $object->name = 'John'; $object->age = 25; $array = get_object_vars($object); print_r($array); |
Вывод:
1 2 3 4 5 |
Array ( [name] => John [age] => 25 ) |
1 2 3 4 5 6 7 |
$object = new stdClass(); $object->name = 'John'; $object->age = 25; $array = json_decode(json_encode($object), true); print_r($array); |
Вывод:
1 2 3 4 5 |
Array ( [name] => John [age] => 25 ) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
function objectToArray($object) { if (is_object($object)) { $object = get_object_vars($object); } if (is_array($object)) { return array_map(__FUNCTION__, $object); } else { return $object; } } $object = new stdClass(); $object->name = 'John'; $object->age = 25; $array = objectToArray($object); print_r($array); |
Вывод:
1 2 3 4 5 |
Array ( [name] => John [age] => 25 ) |
Выберите любой из этих способов в зависимости от ваших потребностей и предпочтений.