2016-08-03 67 views
0

我传递阵列中的数据,以我的观点是这样笨:用foreach循环使用交换机

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); 
在我的这个观点

是我在做什么

<?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;?> 

,这是正常工作,但我只是想问一下,这是标准的做法,我是这样做的,或者可以有更好的方法来遍历这个数组。

需要你的帮助,请

这个问题是不是如果我要使用开关或的if else,我想知道我在编码方面采用开关的方式是正确与否?或者我可以改进它 。

+0

使用'if'作为替代 –

+0

您可能想了解PHP MVC体系结构。此外,您目前的解决方案迟早会遇到更多元素和更多数据的混乱。 –

+0

可能重复[哪一个更快,更好,切换案例或如果其他如果?](http://stackoverflow.com/questions/10773047/which-is-faster-and-better-switch-case-or-if-否则,如果) –

回答

1

而不是比较开关情况下,你可以修改你的开关代码是这样的。

<?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

谢谢很多人.....! – Sikander