2017-04-21 4 views
0

J'ai l'exemple de fonction suivant.Comment vérifier si une valeur spécifique existe dans un tableau?

class EquipmentReport extends MY_Controller 
{ 

    public function __construct() 
    { 
     parent::__construct(); 
     $this->load->model('Reporting/ReportModel');//load report model 
     $this->load->helper('url'); 
     $this->load->helper('form'); 
     $this->Authorize(); // method inherited and returns array 
} 

    /** 
    * loads view if no $_POST data 
    * if post data generates sql query 
    * @return (query) 
    **/ 


    public function by_category(){ 
     $my_array = $this->Authorize(); 
     if (in_array("USER_GROUP_STATUS", $my_array)) { 
      echo "Got USER_GROUP_STATUS"; 
     } 
} 

le dumping my_array de $ donne le tableau suivant

Array ( 
[0] => 'ALL', 
     'USER_GROUP_STATUS', 
     'USER_GROUP_HAS_PERMISSION_CREATE_DEPARTMENT', 
     'USER_GROUP_HAS_PERMISSION_READ_DEPARTMENT', 
     'USER_GROUP_HAS_PERMISSION_UPDATE_DEPART' 
    ) 

mais la vérification des clés du tableau fonctionne nt. ce que je voulais faire est de vérifier si l'une des valeurs existe. par exemple si 'USER_GROUP_STATUS' existe dans le tableau?

+0

'array_search ("à serach", $ array)' –

+0

@MASIDDIQUI ... sa façon de travailler que nt. –

Répondre

2

Essayez cette fonction in_array()

if (in_array("USER_GROUP_STATUS", $your_array)) { 
    echo "Got USER_GROUP_STATUS"; 
} 

ou vous pouvez essayer cette façon

$ary = [ 
0 => ['ALL', 'USER_GROUP_STATUS', 'USER_GROUP_HAS_PERMISSION_CREATE_DEPARTMENT', 
     'USER_GROUP_HAS_PERMISSION_READ_DEPARTMENT', 
     'USER_GROUP_HAS_PERMISSION_UPDATE_DEPART'] 
     ]; 

foreach($ary as $ar) 
if (in_array("USER_GROUP_STATUS", $ar)) { 
      echo "Got USER_GROUP_STATUS"; 
     } 

Live Demo

1

utiliser simplement in_array():

if (in_array($string, $Arr)) { 
    //code 
} 
0
$yourArray = Array ([0] => ALL,'USER_GROUP_STATUS','USER_GROUP_HAS_PERMISSION_CREATE_DEPARTMENT','USER_GROUP_HAS_PERMISSION_READ_DEPARTMENT','USER_GROUP_HAS_PERMISSION_UPDATE_DEPART'); 

$needle = 'USER_GROUP_STATUS'; 

if(in_array($needle, $yourArray)) { 
    echo 'found it!'; 
} 

J'espère que cela vous aide.

+0

j'ai essayé ce bt je ne reçois rien $ needle = "USER_GROUP_STATUS"; $ my_array = $ this-> Authorize(); if (in_array ($ needle, $ mon_array)) { echo 'l'a trouvé!'; die(); } –

0

faire qqch comme ça

public function by_category() 
    { 

     $key= "USER_GROUP_STATUS"; 
     $my_array = $this->Authorize(); 
     if(in_array($key,$my_array)) { 
      echo 'Bravo!'; 
      die(); 
     } 

    } 
+0

Sans mentionner que vous pouvez utiliser des guillemets simples. comme ceci: $ key = 'USER_GROUP_STATUS'; –