589 Stimmen

Wie überprüft man, ob ein Array in PHP leer ist?

players wird entweder leer sein oder eine durch Kommas getrennte Liste (oder ein einzelner Wert). Wie kann man am einfachsten überprüfen, ob es leer ist? Ich nehme an, dass ich dies sofort tun kann, sobald ich das $gameresult-Array in $gamerow abrufe? In diesem Fall wäre es wahrscheinlich effizienter, das Aufteilen des $playerlist zu überspringen, wenn es leer ist, aber um des Arguments willen, wie würde ich auch überprüfen, ob ein Array leer ist?

$gamerow = mysql_fetch_array($gameresult);
$playerlist = explode(",", $gamerow['players']);

2voto

Robbie KN Punkte 177

Ich wiederhole nicht, was hier bereits gesagt wurde, nur getestet und der effizientere Weg auf PHP-7.3 ist !empty($myARR) oder isset($myARR[0]), beide zeigen die gleiche Geschwindigkeit an. Alles andere ist ziemlich langsamer, einschließlich array_key_exists($myARR[0]) und einfachem Vergleich von $myARR !== Array() | $myARR !== []. Also bevorzuge ich empty(), einfach und schnell.

2voto

Anas Red Punkte 69

Ich denke, der beste Weg zu bestimmen, ob das Array leer ist oder nicht, ist count() wie folgt zu verwenden:

if(count($array)) {
    return 'anything true goes here';
} else {
    return 'anything false';
}

0 Stimmen

Der count()-Aufruf kann vollständig entfernt werden - siehe Antwort von Cobby.

2voto

Anish Rai Punkte 690
$gamerow = mysql_fetch_array($gameresult);

if (!empty(($gamerow['players'])) {
   $playerlist = explode(",", $gamerow['players']);
}else{

  // do stuff if array is empty
}

2voto

Dan McGrath Punkte 39478
empty($gamerow['players'])

0 Stimmen

Manchmal könnten Sie den Element-Array-Schlüsselwert nicht kennen $matches = preg_grep("/^$text (\w+)/i", $array);, um es zu überprüfen, benutze ich if (count($matches) > 0)

0 Stimmen

Es wird davon ausgegangen, dass die Spalte im Ergebnis Set existiert, daher leistet empty() zu viel Arbeit.

0 Stimmen

@Salem, Ich habe das gleiche gemacht (d.h. 'count'), bis ich auf PHP 7.2 umgestiegen bin. Trotz der "Regel", dass kleinere Versionen keine rückwärtskompatiblen Änderungen implementieren sollten, wirft diese Version von PHP eine Warnung, wenn "count($myArray)" auf einem leeren Array durchgeführt wird. Das verursacht Probleme (zumindest in meinem Code, und ich weiß, dass einige Frameworks es zu einer Ausnahme "aktualisieren" werden). Seien Sie also auf dieses "gotcha" von PHP vorbereitet. Jetzt muss ich meine Arrays umwandeln ((array)$myArray), obwohl es bereits als Array definiert ist. Seltsam und dumm, meiner Meinung nach.

1voto

Ankur prajapati Punkte 403
$status = "";

$new_array = array();

if(!empty($new_array)){
  $status = "1";   // kein leeres Array
}
else{
  $status = "0";   // leeres Array
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X