2015-06-10 79 views
2

你好社區有一個查詢,問題是我有一個查詢數據庫的方法,它調用該方法假定時間參數。在數組列表Codeigniter 3中添加一個數組?

正如我commented'm使用PHP框架CodeIgniter的,問題是這一次磋商,並加載陣列的第一個列表,稱爲:$ listSubPrim

我想陣列的該列表,添加另一個數組在列表中$ listSubSecu,但問題是,我發現不工作的方式我想,雖然方法添加array_push

principal_model.php

<?php 
class Principal_model extends CI_Model { 

    public function __construct() { 
     $this->load->database(); 
    } 

    function obtenerPermisosNivel($icodrol, $nivelmenu) { 
     try{ 
      $sql = 'SELECT ICODMAEMENU, ICODROL, VDESMAEMENU, VDESICONO, VDESIDMAEMENU, '; 
      $sql = $sql.'ICODPADMENU, VDESCOMAND, SIORDPRIORIDAD, ICODSUBMENU, BACTIVO ';  
      $sql = $sql.'FROM TABMAEMENU '; 
      $sql = $sql.'WHERE ICODROL = ? '; 
      $sql = $sql.'AND BACTIVO = ? ';  
      switch ($nivelmenu) { 
       case NIVEL_SUB_MENU_PRIMARIO: 
        $sql = $sql.'AND ICODPADMENU IS NULL '; 
        $sql = $sql.'ORDER BY ICODMAEMENU '; 
        break; 
       case NIVEL_SUB_MENU_SECUNDARIO: 
        $sql = $sql.'AND ICODPADMENU IS NOT NULL '; 
        $sql = $sql.'AND ICODSUBMENU IS NULL '; 
        $sql = $sql.'ORDER BY SIORDPRIORIDAD '; 
        break; 
       case NIVEL_SUB_MENU_TERCIARIO: 
        $sql = $sql.'AND ICODPADMENU IS NOT NULL '; 
        $sql = $sql.'AND ICODSUBMENU IS NOT NULL '; 
        $sql = $sql.'ORDER BY SIORDPRIORIDAD '; 
        break; 
      } 
      $query = $this->db->query($sql, array($icodrol, ESTADO_ACTIVO)); 
      return $query->result_array(); 
     } catch(Exception $e){ 
      log_message('debug', $e->getMessage()); // use codeigniters built in logging library 
      show_error($e->getMessage()); // or echo $e->getMessage() 
     }   
    } 

    function obtenerPermisosMenu($icodrol) { 
     try{ 
      /* Obtenemos el listado de SubMenus Primarios de toda la lista */ 
      $listSubPrim = $this->obtenerPermisosNivel($icodrol, NIVEL_SUB_MENU_PRIMARIO); 
      /* Obtenemos el listado de SubMenus Secundarios de toda la lista */  
      $listSubSecu = $this->obtenerPermisosNivel($icodrol, NIVEL_SUB_MENU_SECUNDARIO); 

      /* Obtenemos el listado de SubMenu de asociado al SubMenu primario */   
      foreach ($listSubPrim as $pri) { 
       $listSubMenuItem = array(); 
       foreach ($listSubSecu as $sec) { 
        if($sec['ICODPADMENU'] == $pri['ICODMAEMENU']) { 
         array_push($listSubMenuItem, $sec); 
        }    
       } 
       if (count($listSubMenuItem) > 0) { 
        array_push($pri, $listSubMenuItem); 
       }    
      }   

      /* Obtenemos el listado de SubMenus Terciarios de toda la lista */ 
      $listSubTerc = $this->obtenerPermisosNivel($icodrol, NIVEL_SUB_MENU_TERCIARIO); 
      /* Obtenemos el listado de SubMenu de asociado al SubMenu secundario */ 
      foreach ($listSubPrim as $pri) { 
       $listSubSecu = $pri[10]; 
       if (is_array(listSubSecu)) { 
        foreach (listSubSecu as $sec) { 
         $listSubMenuItem = array(); 
         foreach ($listSubTerc as $ter) { 
          if($sec['ICODMAEMENU'] == $ter['ICODSUBMENU']) { 
           array_push($listSubMenuItem, $sec); 
          }    
         } 
         array_push($sec, $listSubMenuItem); 
        } 
       }   
      } 
      return $listSubPrim;  
     } catch(Exception $e){ 
      log_message('debug', $e->getMessage()); // use codeigniters built in logging library 
      show_error($e->getMessage()); // or echo $e->getMessage() 
     } 
    } 

} 
?> 

我意識到,往回走就行了:$ listSubPrim

有限公司第10位的數組應該是一個數組,所以在代碼中表示。

$listSubSecu = $pri[10]; 

我希望你能理解我的問題。 基本上我只想要一個修復列表,有三個級別。 謝謝。

+0

你想合併兩個數組? – Mitul

+0

如果你只是給出你期望的數組結構的演示,這將是有益的。 –

+0

你好朋友,我用一個例子回答了我的問題,如果你能用PHP在我的查詢中支持我...... –

回答

0

你好,我會解釋清楚的印象陣列的第一清單:$ listSubPrim

$listSubPrim = $this->obtenerPermisosNivel($icodrol, NIVEL_SUB_MENU_PRIMARIO); 

$listSubSecu = $this->obtenerPermisosNivel($icodrol, NIVEL_SUB_MENU_SECUNDARIO); 

foreach ($listSubPrim as $pri) { 
    log_message('debug', '-> '.$pri['ICODMAEMENU'].' - '.$pri['ICODROL'].' - '.$pri['VDESMAEMENU']);     
} 

我打印陣列的列表的結果,你會發現:

DEBUG - 2015-06-10 16:43:31 --> -> 85 - 2 - Las 20 Mejores Ofertas 
DEBUG - 2015-06-10 16:43:31 --> -> 86 - 2 - Ofertas Inteligentes 
DEBUG - 2015-06-10 16:43:31 --> -> 87 - 2 - Descuentos Restaurantes 
DEBUG - 2015-06-10 16:43:31 --> -> 88 - 2 - Categorias 

我需要你在那一行,添加數組列表:$ listSubSecu,對於數組foreach中的每一行。

綾希望我明白了。 謝謝。