2011-03-15 86 views
2

我目前正在使用Zend Framework。需要幫助Zend_Db_Select

只是想知道是否有一種簡單的方法,使我的結果在數字數組格式,而不是關聯數組?

例如,這裏是我的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->指定者()我得到

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

但我想在數字陣列格式像

$result[0]="1"; 
$result[1]="2"; 

有人可以幫我嗎? 謝謝你這麼多

乾杯

回答

1

$result是一個行集,所以你可以做這樣的事情:

$numericResult = array(); 
foreach ($result as $row) { 
    $numericResult []= $row->religionTypeId; 
} 
1
$adapter->setFetchMode(Zend_Db::FETCH_NUM); 
$result = $this->fetchAll($select); 

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

假設$this是實例Zend_Db_Table(沒有人會將適配器擴展爲mod EL吧):

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

最佳答覆在這裏。但是如果是這樣的話,你可以使用'$ this-> getAdapter() - > fetchAll($ select);''和'$ this- > getAdapter() - > setFetchMode()'100%:) – 2011-03-15 15:38:41

+0

你是對的。將查看行集以查看它是否可以使用數字鍵 – Xerkus 2011-03-15 15:56:18

+1

否,Table無法與其他模式一起工作,因爲它明確指定了關聯獲取模式:'$ data = $ stmt-> fetchAll(Zend_Db :: FETCH_ASSOC);' – Xerkus 2011-03-15 16:05:29

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

甚至都

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