Przypuszczam można użyć array_filter()
dostać tablicę wszystkich elementów, które są niezerowe; i użyj empty()
w tej wynikowej tablicy, aby określić, czy jest pusta, czy nie.
Na przykład, w przykładowej tablicy:
$data = array(
'a'=>'0',
'b'=>'0',
'c'=>'0',
'd'=>'0');
stosując następujący fragment kodu:
$tmp = array_filter($data);
var_dump($tmp);
pokaże Ci pustą tablicę, nie zawierającego elementu niezerową:
array(0) {
}
I użycie czegoś takiego:
if (empty($tmp)) {
echo "All zeros!";
}
dostanie się następujący wynik:
All zeros!
Z drugiej strony, o następującej tablicy:
$data = array(
'a'=>'0',
'b'=>'1',
'c'=>'0',
'd'=>'0');
$ tmp tablica będzie zawierać:
array(1) {
["b"]=>
string(1) "1"
}
I jako taki nie byłby pusty.
Zauważ, że nie przekazując wywołania zwrotnego jako drugi parametr do array_filter()
zadziała ponieważ (cytowanie):
Jeśli nie zwrotna jest dostarczany, wszystkie wpisy z wejścia równy FAŁSZ (patrz converting to boolean) będzie usunięty.
Będzie tablica zawsze składa się z 4 elementów? –
@fireeyedboy: Nie – Student