Прежде всего, если вам нужен массив из объекта, вы, вероятно, должны сначала сформировать данные в виде массива.Думаю об этом.
Не используйте оператор foreach или преобразования JSON.Если вы планируете это, вы снова работаете со структурой данных, а не с объектом.
Если вам действительно это нужно, используйте объектно-ориентированный подход, чтобы получить чистый и понятный код.Например:
Объект как массив
class PersonArray implements \ArrayAccess, \IteratorAggregate
{
public function __construct(Person $person) {
$this->person = $person;
}
// ...
}
Если вам нужны все свойства, используйте объект переноса
class PersonTransferObject
{
private $person;
public function __construct(Person $person) {
$this->person = $person;
}
public function toArray() {
return [
// 'name' => $this->person->getName();
];
}
}