2016-09-16 116 views
2

如何要求至少2個複選框才能繼續?我有以下的PHP:如何檢查是否至少有2個複選框被標記以繼續?

/** 
    * check_required_addons function. 
    * 
    * @access private 
    * @param mixed $product_id 
    * @return void 
    */ 
    private function check_required_addons($product_id) { 
     $addons = get_product_addons($product_id, false, false, true); // No parent addons, but yes to global 

     if ($addons && ! empty($addons)) { 
      foreach ($addons as $addon) { 
       if ('1' == $addon['required']) { 
        return true; 
       } 
      } 
     } 

     return false; 
    } 

其中$ addons = array();在這個數組中有複選框。如何檢查至少2個複選框以便繼續?

+1

如果使用(計數($插件)> = 2){返回true;} –

+0

@SunilPachlangia簡單計數不夠,'$插件[ '所需']'必須以1計算它 – cske

+0

@cske通過文本判斷,標題和內容都足夠了。然而,代碼似乎不匹配的問題... – jeroen

回答

3
private function check_required_addons($product_id) { 
       $addons = get_product_addons($product_id, false, false, true); // No parent addons, but yes to global 

       if ($addons && ! empty($addons)) { 
        $count = 0; 
        foreach ($addons as $addon) { 
         if ('1' == $addon['required']) { 
          $count++; 
         } 
        } 
        if($count >= 2){ 
         return true; 
        } 
       } 

       return false; 
      } 
2

使用http://php.net/manual/en/function.array-column.php

/** 
    * check_required_addons function. 
    * 
    * @access private 
    * @param mixed $product_id 
    * @return void 
    */ 
    private function check_required_addons($product_id) { 
     $addons = get_product_addons($product_id, false, false, true); // No parent addons, but yes to global 

     if (is_array($addons)) { 
      return 1 < array_sum(array_column($addons,'required')); 
     } 

     return false; 
    } 
相關問題