我目前正在使用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";
有人可以帮帮我吗? 非常感谢你
干杯
答案 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;
}