需要Zend_Db_Select的帮助

时间:2011-03-15 11:40:12

标签: zend-framework zend-db

我目前正在使用Zend Framework。

只是想知道是否有一种简单的方法可以使我的结果以数字数组格式而不是关联数组?

例如,这是我的zend_db_select语句

   $select = $this->select()->from('providerReligionPreference','religionTypeId')
           ->where('providerId = ?',$providerId)
           ->where('quoteTypeId = ?',$quoteTypeId);

   $result = $this->fetchAll($select);

   var_dump($result->toArray());

        return $result->toArray();

当我var_dump $ result-> toArray()时,我得到了

array(2) { [0]=> array(1) { ["religionTypeId"]=> string(1) "1" } [1]=> array(1) { ["religionTypeId"]=> string(1) "2" } } 

但我希望使用像

这样的数字数组格式
$result[0]="1";
$result[1]="2";

有人可以帮帮我吗? 非常感谢你

干杯

4 个答案:

答案 0 :(得分:1)

您的$result是一个行集,因此您可以执行以下操作:

$numericResult = array();
foreach ($result as $row) {
     $numericResult []=  $row->religionTypeId;
}

答案 1 :(得分:1)

$adapter->setFetchMode(Zend_Db::FETCH_NUM);
$result = $this->fetchAll($select);

$result = $adapter->fetchAll($select, array(), Zend_Db::FETCH_NUM);

假设$this是Zend_Db_Table的实例(没有人会将适配器扩展为模型,对吧?):

$result = $this->getAdapter()->fetchAll($select, array(), Zend_Db::FETCH_NUM);

答案 2 :(得分:1)

$adapter->setFetchMode(Zend_Db::FETCH_NUM);
$select = $adapter->select();
...

甚至两者

$adapter->setFetchMode(Zend_Db::FETCH_BOTH);

答案 3 :(得分:1)

fetchAll的返回是一个行集,如:http://framework.zend.com/manual/fr/zend.db.table.rowset.html

中的解释

行集实现“SeekableIterator”和“Countable”:http://framework.zend.com/apidoc/core/Zend_Db/Table/Zend_Db_Table_Rowset_Abstract.html

使用:

$myAssocArray = array();
foreach ($result as $row) {
    $myAssocArray[] = $row->religionTypeId;
}