2012-04-03 8 views
1

Gibt es eine Möglichkeit zu überprüfen, ob alle Elemente in einem Array in PHP null sind?Gibt es eine Möglichkeit zu überprüfen, ob alle Elemente in einem Array in PHP null sind

Zum Beispiel habe ich ein Array array(null,null,null,null) - gibt es eine Möglichkeit, dieses Szenario zu überprüfen?

Ich bin auf der Suche nach einem besseren Weg als nur das gesamte Array durchlaufen und überprüfen jedes Element.

+4

Sicher, Schleife durch sie mit 'foreach' und jedes Element testen. – halfer

+0

Ich meinte einen besseren Weg, es zu tun. Wie in einigen eingebauten Funktion –

+0

'array_unique ($ array) == Array (null)' vielleicht. __EDIT__ entfernte Anführungszeichen –

Antwort

7

Eine weitere einfache Möglichkeit zur Herstellung von Diese Arbeit soll die max() Funktion verwenden.

max(array(3, 4, null, null ))  # is 4 
max(array(null, null, null, null) # is null 

So können Sie einen einfachen Anruf if(is_null(max($array))) { ... } ausgeben.

-1

können Sie array_filter()

wie folgt verwenden:

$nulls = array(null,null,null,null,null); 
if(count(array_filter($nulls)) == 0){ 
    echo "all null (or false)"; 
} 

weiß nicht, was Sie in diesem Array erwarten, aber diese Klumpen falsch in dem nulls ...

+0

Ich glaube du meintest 'count ($ removelulls) == 0' –

+1

wenn du 'array (0,' ', null, array()) benutzt hast;' würde dies fehlschlagen. 'array_filter' prüft einfach auf falsche Werte, nicht auf 'null'-Werte. – zzzzBov

+0

Meine Antwort war, bevor ich kommentierte, dann bemerkte ich, deins war ähnlich. – zzzzBov

1

array_filter funktionieren würde:

function checkIsset($val) { 
    return isset($val); 
} 
$arr = array(null, null, null, ..., null); 
$filteredArr = array_filter($arr, 'checkIsset'); 
if (count($filteredArr)) { 
    //not all null 
} else { 
    //all null 
} 

oder if (empty($filteredArr)), wenn Sie die inverse wollen.

+0

Ist das getestet? – PeeHaa

+0

@RepWhoringPeeHaa, nein. Es geht mehr um die Struktur, wie es funktionieren würde. – zzzzBov

+0

Könnten Sie bitte Arbeitscode bereitstellen oder hinzufügen, dass es Pseudocode ist? – PeeHaa

2

Try this:

$nulls = array(null,null,null,null,null,null,null,null); 
var_dump(array_unique($nulls) === array(null)); // prints true 
Verwandte Themen