Массив строк Zend\Db\Sql\Sql

как создать многомерный массив? в настоящее время этот запрос возвращает мне это:

Array
(
    [id] => 1
    [name] => Samsung galaxy S4 
    [homepage] => 1
)

но я хочу, чтобы я вернул данные следующим образом:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Samsung galaxy S4 
            [homepage] => 1
        )

    [1] => Array
        (
            [id] => 3
            [name] => Iphone 5 
            [homepage] => 1
        )

    [2] => Array
        (
            [id] => 3
            [name] => Samsung galaxy S3 
            [homepage] => 1
        )
)

Модель:

<?php
namespace Application\Model;

use Zend\Db\Adapter\Adapter;
use Zend\Db\Sql\Sql;

class News
{
    const TABLE = 'news';

    public function __construct(Adapter $adapter)
    {
        $this->adapter = $adapter;
        $this->sql = new Sql($adapter);
    }

    public function getNews()
    {
        $select = $this->sql->select();
        $select->from(self::TABLE)
               ->where(array('homepage' => 1));
        $statement = $this->sql->prepareStatementForSqlObject($select);
        return $statement->execute()->current();        
    }
}

Проблема не в запросе, а в превращении всего этого в многомерный массив. Как мне создать массив так из базы данных.


person Carol Casta    schedule 03.06.2013    source источник
comment
Вы возвращаете ->current(), который выбирает ПЕРВУЮ запись вашего многомерного массива, которая будет возвращена $statement->execute() - отрежьте ->current(), и вы получите то, что хотите.   -  person Sam    schedule 03.06.2013


Ответы (1)


согласен с Сэмом, просто удалите current() из своего кода, вы получите то, что хотели:

$result = $statement->execute();
$result = array_values(iterator_to_array($result));
return $result;
person graphicmist    schedule 07.06.2013