2013-06-03 2 views
1

Как создать многомерный массив? В настоящее время этот запрос возвращает мне это:Zend Db Sql Sql row array

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();   
    } 
} 

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

+3

Вы возвращаетесь '-> ток()', который выбирает первую запись вашего Мультикадра Размерный массив, который будет возвращен '$ statement-> execute()' - вырезать '-> current()', и вы получили то, что хотите – Sam

ответ

0

согласен с Сэмом, просто удалите текущий() сформировать ваш код, вы получите то, что вы хотели, как:

$result = $statement->execute(); 
$result = array_values(iterator_to_array($result)); 
return $result;