Zend \ Db \ Sql \ Sql行数组

时间:2013-06-03 16:19:34

标签: zend-framework zend-framework2 zend-db zend-db-select

如何创建多维数组?目前这个查询给我这个:

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

问题不在查询中,而是全部变成多维数组。 如何从数据库创建数组。

1 个答案:

答案 0 :(得分:0)

同意Sam的意见,只需删除代码中的current()表单,就可以获得所需内容:

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