/ / Použitie if (! Empty) na viacerých premenných, ale zobrazenie obsahu, ak nie je prázdny - php, premenné

Použitie if (! Prázdne) na viacerých premenných, ale zobrazovanie obsahu, ak nie je prázdny - php, premenné

Používam nasledujúce

if (!empty($data["var_1"])
&& !empty($data["var_2"])
&& !empty($data["var_3"])
&& !empty($data["var_4"])
&& !empty($data["var_5"])
&& !empty($data["var_6"])
&& !empty($data["var_7"])
&& !empty($data["var_8"])
&& !empty($data["var_9"])) {
//BLOCK HERE
}

V podstate to, čo sa snažím dosiahnuť, je ak všetko z premenných sú prázdne, blok je zablokovaný. Ak je 8 alebo menej prázdnych, zobrazte blok.

Kam sa pokazím?

odpovede:

1 pre odpoveď č. 1

Chceš || nie &&, Toto zobrazí blok iba vtedy, ak nie sú prázdne. Myslím, že je to asi krajší spôsob, ako to urobiť, ako, ako array_filter.


1 pre odpoveď č. 2

No, môžete použiť len slučku a $isok premenná:

$isok = false;
for($i=1; $i<10; $i++) {
if( !empty($data["var_".$i])) {
$isok = true;
break; // no need to continue looping
}
}
if( $isok) {
// BLOCK HERE
}

Toto je jednoduchšie upravovať aj v prípade, že ho zmeníte var_ odlišný rozsah čísel.


1 pre odpoveď č. 3

Môžete sa tiež pokúsiť

$data = array_filter($data); // remove all empty value form array

if (count($data)) {
// do your thing
}

0 pre odpoveď č. 4

Kód, ktorý ste napísali, zobrazí blok, ak VŠETKY premenné nie sú prázdne. Ak chcete, aby sa zobrazovali, keď je niektorá z premenných prázdna, použite OR namiesto AND nahradením && podľa ||.

<?php
if (!empty($data["var_1"]) || !empty($data["var_2"]) || !empty($data["var_3"]) || !empty($data["var_4"]) || !empty($data["var_5"]) || !empty($data["var_6"]) || !empty($data["var_7"]) || !empty($data["var_8"]) || !empty($data["var_9"])) {
//BLOCK HERE
}

0 pre odpoveď č. 5

Môžeš použiť array_values ​​() pre to:

if ( count(array_values($data)) ) {
//BLOCK HERE
}

0 pre odpoveď č. 6

Nahraďte && (AND) príkazom || (OR)

if (!empty($data["var_1"])
|| !empty($data["var_2"])
|| !empty($data["var_3"])
|| !empty($data["var_4"])
|| !empty($data["var_5"])
|| !empty($data["var_6"])
|| !empty($data["var_7"])
|| !empty($data["var_8"])
|| !empty($data["var_9"])) {
//BLOCK HERE
}

0 pre odpoveď č. 7
if (empty(array_values($data))) { /* will return you true if all variables are empty*/}