2014-01-09 35 views
0

我使用的Zend 1打印陣列到另一個數組[Zend的]

CONTROLLER:

public function insertarAction() { 

     $entidades_salud = new Application_Model_DbTable_EntidadesSalud(); 
     $datos_entidades = $entidades_salud->buscarEntidades(); 
} 

MODEL:

<?php 

class Application_Model_DbTable_EntidadesSalud extends Zend_Db_Table_Abstract 
{ 

    protected $_name = 'entidades_salud'; 
    protected $_primary = 'codigo_entidad_salud'; 

    public function buscarEntidades() { 

     $consulta = $this->select()->from($this->_name); 
     $query = $this->fetchAll($consulta)->toArray(); 
     return $query; 

    } 


} 

打印CONSULT [print_r的($ datos_entidades ); - 在控制器]

Array ([0] => Array ([codigo_entidad_salud] => 1 [nombre_entidad] => SANITAS) 
      [1] => Array ([codigo_entidad_salud] => 3 [nombre_entidad] => wladfimir) 
      [2] => Array ([codigo_entidad_salud] => 4 [nombre_entidad] => Juli)) 
no entraArray ([controller] => beneficiarios [action] => insertar [module] => default) 

根據上述結果,我需要打印:

1 SANITAS 
3 wladfimir 
4 Juli 

,我認爲它應該是這樣的工作:

 while($row = mysqli_fetch_assoc($datos_entidades)){ 
       echo $row['codigo_entidad_salud']; 
     echo $row['nombre_entidad']; 
} 

回答

1

要轉換的結果爲數組, 你可以做什麼Rikesh建議作爲,

foreach($datos_entidades as $row){ 
    echo $row['codigo_entidad_salud']; 
    echo $row['nombre_entidad']; 
} 

而且你可以通過$ datos_entidades到View Script$this->view->data= $datos_entidades;

,你將能夠使用,

foreach($this->data as $row){ 
    echo $row['codigo_entidad_salud']; 
    echo $row['nombre_entidad']; 
} 

您的視圖腳本中也有,

另一種方法,

你不要在$query = $this->fetchAll($consulta)->toArray();

只是用用toArray()$query = $this->fetchAll($consulta);

,你就會像下面能夠訪問它,

foreach($datos_entidades as $row){ 
    echo $row->codigo_entidad_salud; 
    echo $row->nombre_entidad; 
} 

,並能夠也可以在視圖腳本中訪問相同的方式。

+0

再次如上所述,這是更多的zendish方法然後使用foreach然後數組。但仍然是你的選擇。 –

+0

在視圖中,我需要做一個選擇(HTML列表框)http://pastebin.com/WkSHtbpj但是如果您選擇不顯示任何功能,則會顯示其他數據。 @龍戰士 – Jhosman

+0

看它是如何完成的,[這裏](http://pastebin.com/MtQzNeBU) –

2

你需要的是foreach循環遍歷數組。

foreach($datos_entidades as $row){ 
    echo $row['codigo_entidad_salud']; 
    echo $row['nombre_entidad']; 
} 

注:顯示邏輯應該落入視圖文件,你應該通過數據查看&在視圖文件,你需要循環顯示的記錄。

+0

與解決: \t爲($ I = 0; $ I <計數($ datos_entidades); $ I ++) \t { \t \t \t打印$ datos_entidades [$ i]於[ 'codigo_entidad_salud']「。
「; \t \t print $ datos_entidades [$ i] ['nombre_entidad']。「
」; } – Jhosman

+2

Foreach比迭代數組更好,它仍然取決於你。 – Rikesh

+0

+1 Rikesh先生... –