2016-08-03 13 views
0

I Array-Daten wie dieseCodeigniter: Mit dem Schalter mit foreach-Schleife

meiner Ansicht bin vorbei
public function login(){ 
     $array= array(
      array(
       'type'   =>  'text', 
       'usrname'  =>  'username', 
       'class'   =>  'form-control', 
       'placeholder' =>  'Username', 
      ), 
      array(
       'type'   =>  'password', 
       'class'   =>  'form-control', 
       'placeholder' =>  'Password', 
      ), 
      array(
       'type'   =>'heading', 
       'heading'  =>'Not a Memer YET ?', 
      ), 

     ); 

    $output['data']=$array; 
    $this->load->view('authentication',$output); 

meiner Meinung nach dieses ist, was ich

<?php foreach ($data as $key=> $value):?> 
     <?php 
      switch ($value){ 
       case $value['type']=='heading': 
        echo $value['heading']; 
        break; 
       case $value['type']=='text': 
        echo 'textfield'; 
        break; 
      } 

     ?> 
    <?php endforeach;?> 

dies ordnungsgemäß funktioniert, mache aber ich Ich möchte nur fragen, ob es Standard ist, wie ich es mache, oder es kann einen besseren Weg geben, dieses Array im Switch zu durchqueren.

brauchen Ihre Hilfe bitte

Diese Frage ist nicht etwa, wenn ich Schalter verwendet werden soll oder wenn sonst, ich die Art und Weise wissen, möchte ich Schalter in Bezug auf die Codierung verwendet haben, ist es richtig, oder nicht? Oder ich kann Verbessere es .

+0

Verwenden Sie 'if' als Alternative –

+0

Vielleicht möchten Sie sich über PHP MVC Architecture informieren. Auch Ihre aktuelle Lösung wird früher oder später ziemlich unordentlich mit mehr Elementen und mehr Daten im Allgemeinen werden. –

+0

Mögliches Duplikat von [Was ist schneller und besser, Switch Case oder wenn sonst?] (Http://stackoverflow.com/questions/10773047/which-is-faster-and-better-switch-case-or-if- else-if) –

Antwort

1

Anstatt im Switch-Fall zu vergleichen, können Sie Ihren Switch-Code in etwa so ändern.

<?php foreach ($data as $key=> $value):?> 
<?php 
    switch ($value['type']){ 
     case 'heading': 
         echo "heading"; 
         break; 
     case 'text': 
         echo 'textfield'; 
         break; 
     default : //default code here 
    } 

?> 
<?php endforeach;?> 
+0

Vielen Dank Mann .....! – Sikander