Как я могу скрыть объект в массиве в php - PullRequest
0 голосов
/ 05 августа 2020

Как преобразовать объект в массив в php? Например, здесь я хочу преобразовать переменную $ result в массив. Вот код:

$statement = $adapter->createStatement('SELECT * FROM `users`');
$result    = $statement->execute();
$result = new JsonModel($result);
$result = array($result);
var_dump($result);
return ($result);
```

It produces the following output. 
array(1) { [0]=> object(Laminas\View\Model\JsonModel)#160 (8) { ["captureTo":protected]=> NULL ["jsonpCallback":protected]=> NULL ["terminate":protected]=> bool(true) ["children":protected]=> array(0) { } ["options":protected]=> array(0) { } ["template":protected]=> string(0) "" ["variables":protected]=> array(4) { [0]=> array(3) { ["id"]=> string(1) "1" ["name"]=> string(13) "J. K. Rowling" ["deleted"]=> string(1) "0" } [1]=> array(3) { ["id"]=> string(1) "2" ["name"]=> string(19) "George R. R. Martin" ["deleted"]=> string(1) "0" } [2]=> array(3) { ["id"]=> string(1) "3" ["name"]=> string(16) "J. R. R. Tolkien" ["deleted"]=> string(1) "0" } [3]=> array(3) { ["id"]=> string(1) "4" ["name"]=> string(12) "Donald Trump" ["deleted"]=> string(1) "0" } } ["append":protected]=> bool(false) } } 

Ответы [ 3 ]

0 голосов
/ 05 августа 2020

Просто мы можем поместить объект в массив следующим образом:

$ result = $ statement-> execute (); $ Array = (массив) $ result;

0 голосов
/ 02 сентября 2020

Есть пара гидраторов, доступных в мире PHP. Вы можете использовать их отдельно или с ORM, например doctrine. Например, посмотрите на это:

  1. https://packagist.org/packages/laminas/laminas-hydrator
  2. https://packagist.org/packages/doctrine/doctrine-module

Если вы используете Laminas без Dotrine, я бы go с 1

0 голосов
/ 05 августа 2020

подвох будет ...

$result    = $statement->execute();
$Array = json_decode(json_encode($result),true);
...