2015-08-18 4 views
0

У меня есть следующий кодПроверяется значение пустой массив в двухмерном массиве

$rez1 = mysqli_query($kon, "SELECT producten.*,producten.id as prodID, product_shop_tt.*, COUNT(order_details.id) AS order_count from producten 
              INNER JOIN product_shop_tt ON producten.id = product_shop_tt.product_id 
              LEFT JOIN order_details ON order_details.product_shop_tt_id = product_shop_tt.id 
              WHERE product_shop_tt.shop_id = '" . $red['id'] . "' 
              GROUP BY producten.id 
              ORDER BY order_count DESC"); 
      $brRez = mysqli_num_rows($rez1); 
      $i = 1; 
      while($red1 = mysqli_fetch_assoc($rez1)){ 

       $brProizvoda = $red1["order_count"]; 


       if($brProizvoda >= 30){ 
        $pozadina = "background-color:#C4C4B3;border-radius:10px"; 
       }elseif(($brProizvoda < 30) && ($brProizvoda > 10)){ 
        $pozadina = "background-color:#E0E0D8;border-radius:10px"; 
       }else{ 
        $pozadina = "background-color:#FFFFFF;border-radius:10px"; 
       } 


       //Listamo proizvode 
       echo "<div class=\"col-xs-12 col-sm-12\" style=\"". $pozadina .";margin-bottom:1px;\"> 
         <input class=\"hidd\" type=\"hidden\" name=\"txtHidd[". $red1["prodID"] ."][kolicina]\" id=\"txtHidd". $i ."\" value=\"\"/> 
         <div class=\"col-sm-2 col-xs-5\" style=\"margin-left:-25px;\"> 
         <div class=\"form-group\" style=\"margin:0;\"> 
          <input id=\"quan". $i ."\" class=\"form-control\" type=\"number\" value=\"0\" min=\"0\" max=\"10\" onChange=\"proces('quan".$i."', 'txtHidd".$i."'); \" style=\"margin:5px 0 5px 0;\"/> 
         </div> 
         </div> 
         <div class=\"col-sm-10 col-xs-7\" style=\"padding-left:0;\"> 
         ". $red1["naam"] . " (<strong>". $red1["price"] . "</strong>€) -- <i>". $red1["details"] . "</i> 
         </div> 


         </div>"; 
        $i++; 
      } 
       //Dugmad (Nazad i naruci) 
       echo "<div style=\"clear:both;\"></div><div class=\"footer\" style=\"position: fixed;bottom: 0;width: 100%;left:0;\"> 
         <a href=\"home.php\" title=\"Ga terug\" class=\"col-xs-6 col-sm-6 btn btn-info\"><span class=\"glyphicon glyphicon-chevron-left\"></span> Niets toevoegen</a> 
         <button class=\"col-xs-6 col-sm-6 btn btn-danger\" type=\"submit\" name=\"btnNaruci\" id=\"btnNaruci\"> 
          Leg in winkelmand <span class=\"glyphicon glyphicon-chevron-right\"></span><span class=\"glyphicon glyphicon-chevron-right\"></span><span class=\"glyphicon glyphicon-chevron-right\"></span> 
         </button> 
        </div></form>"; 

Я хочу сейчас, чтобы проверить, если каждое значение kolicina в массиве txtHidd [». $ Red1 [„PRODID“ ].]] [kolicina] пуст.

Я пытаюсь с

$empty = array_filter($_POST["txtHidd"]); 

if (empty($empty)) { 
    echo "Empty"; 
} 

Таким образом, я получаю пустой, если все значения пусты, но я также получить пустой если одно или несколько значений равны чему-то еще. Как получить пусто только если все kolicina значения в массиве txtHidd [". $ Red1 [" prodID "]."] [Kolicina] не заполнены?

ответ

2

Используйте array_column() создать массив всех присутствующих kolicina значений. Затем используйте array_filter(), чтобы отфильтровать все значения, которые вы считаете «пустыми». Если это приводит к пусту массива, то все $txtHidd[...]['kolicina'] пусты.

EDIT:

Хорошо, допустим, Вы имеете этот массив:

$_POST['txtHidd'] = array(
    array('a' => 'b', 'c' => 'd', 'kolicina' => ''), 
    array('a' => 'f', 'c' => '1', 'kolicina' => 'abc'), 
    array('a' => 'x', 'c' => '6', 'kolicina' => NULL), 
    array('a' => 'o', 'c' => 'u', 'kolicina' => 'xxx') 
); 

Вы хотите знать, если все kolicina значения пусты, это так? Так Вы можете использовать:

$kolicinas = array_column($_POST['txtHidd'], 'kolicina'); 

Это дает:

array('', 'abc', NULL, 'xxx') 

Теперь Вы спрашиваете, если все эти значения являются пустыми. Так что Вы можете сделать это:

$non_empty_kolicinas = array_filter($kolicinas); 

Вы получаете:

array('abc', 'xxx') 

Это означает, что существуют непустые kolicinas (то, что это :-). Может быть, я неправильно понял вашу проблему, в таком случае исправьте меня, пожалуйста!

+0

Помогите, вы поняли меня отлично. Отлично работает. Благодарю. ура – Boky

0

Используйте этот код

if(isset($_POST["txtHidd"])){ 
echo "Not Empty"; 
} 
+0

Спасибо. Это не сработает. Даже если все значения пустые, я получаю Not empty. – Boky

+0

if (is_array ($ _ POST ["txtHidd"]) && count ($ _ POST ["txtHidd"])> 0) {echo "Not Empty"; } –

+0

Тот же результат. – Boky

Смежные вопросы