2009-07-02 9 views
1

entspricht? Ich habe ein multidimensionales Array. Die einzigen tatsächlichen Werte (außer anderen Arrays) sind Zahlen. Standardmäßig sind sie alle 0.Wie überprüfe ich, ob ein multidimensionales Array mindestens einen Wert hat, der (bool) in PHP

Ich würde gerne wissen, gibt es einen einfachen Weg, um festzustellen, ob das Array einen anderen Wert als 0 in ihm hat.

Ich weiß, ich könnte etwas rekursiv bauen, aber ich möchte wissen, ob ich array_map() oder etwas ähnliches nutzen könnte. Ich konnte array_count_values() nicht mit einem Associate-Array arbeiten.

Wenn das nicht möglich ist, wie würde ich eine rekursive Funktion entwerfen?

Hier sind einige Testfälle

$array = array(
'test' => array(0, 0, 0, array(0, 0, 0)) 
) 

Sollte false zurück.

$array = array(
'test' => array(0, 0, 0, array(6, 0, 0)) // notice the 6 
) 

Sollte wieder wahr werden.

Danke!

Antwort

3

Hm, ich kann mir nicht vorstellen, wie ich die integrierten Funktionen von PHP dazu nutzen kann. Also hier ist eine schnelle rekursive Lösung:

function hasnonzero($array) 
{ 
    foreach ($array as $value) 
    { 
     if (is_array($value)) 
     { 
      if (hasnonzero($value)) 
       return true; 
     } 
     else if ($value != 0) 
      return true; 
    } 

    return false; 
} 
+0

Danke John! – alex

Verwandte Themen