【问题标题】:Zend\Db\Sql\Sql row arrayZend\Db\Sql\Sql 行数组
【发布时间】:2013-06-03 16:19:34
【问题描述】:

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

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

问题不在于查询,而是将其全部转化为多维数组。 如何从数据库中创建一个数组。

【问题讨论】:

  • 你返回-&gt;current(),它选择了你的多维数组的第一个条目,这将由$statement-&gt;execute()返回——剪掉-&gt;current(),你得到了你想要的

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


【解决方案1】:

同意 Sam,只需从你的代码中删除 current(),你就会得到你想要的:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多