Ich muss nur überprüfen, ob ein Array mehr als ein Element hat. Ich versuche es so zu machen:
if (isset($arr['1']))
der andere traditionelle Weg ist
if (sizeof($arr)>1)
Welcher der beiden ist besser? Wie sollte ich in solchen Situationen zwischen zwei alternativen Methoden beurteilen? Gibt es ein Leistungsprüfgerät, mit dem gemessen werden kann, welches besser ist?
Antworten:
Benutze das
Oder
sizeof()
ist ein Alias fürcount()
, sie funktionieren gleich.Bearbeiten: Beantwortung des zweiten Teils der Frage: Die beiden Codezeilen in der Frage sind keine alternativen Methoden, sie führen unterschiedliche Funktionen aus. Der erste prüft, ob der Wert bei
$arr['1']
gesetzt ist, während der zweite die Anzahl der Elemente im Array zurückgibt.quelle
if (sizeof($arr))
, der übersetzt wurdeif (sizeof($arr) == 1)
- klar, dass nicht überprüft wird, ob das Array mehr als ein Element enthält. Diese Antwort ist richtig, und ich sehe keinen Grund, abzustimmen, daher meine Gegenstimme.if(is_array($arr) && count($arr) > 1)
Nur um sicherzugehen, dass $ arr tatsächlich ein Array ist.
sizeof
ist ein Alias voncount
, ich bevorzuge die Verwendung von count, weil:quelle
$arr
es sich um eine Zeichenfolge handelt, wird sie zurückgegeben1
.sizeof()
ist ein Alias fürcount()
. Beide funktionieren auch mit Nicht-Arrays, geben jedoch nur Werte größer als 1 zurück, wenn das Argument entweder ein Array oder einCountable
Objekt ist. Sie sind also ziemlich sicher.quelle
Offensichtlich ist die Verwendung
count($arr) > 1
(sizeof
nur ein Alias fürcount
) die beste Lösung. Abhängig von der Struktur Ihres Arrays gibt es möglicherweise Tonnen von Elementen, aber kein$array['1']
Element.quelle
Verwenden
count()
Diese Seite erklärt es ziemlich gut http://phparraylength.com/
quelle
Ich ziehe die
count()
Funktion stattsizeOf()
alssizeOf()
nur ein Alias fürcount()
und bedeutet nicht das gleiche in vielen anderen Sprachen. Viele Programmierer erwartensizeof()
, dass der zugewiesene Speicher zurückgegeben wird.quelle
sizeof
vscount
Zum Überprüfen eines Arrays ist empty () besser als sizeof ().
Wenn das Array eine große Datenmenge enthält. Das Zählen der Größe des Arrays dauert länger. Das Überprüfen von Leerzeichen ist jedoch immer einfach.
quelle
isset () prüft nur, ob eine Variable gesetzt ist. Hat nichts mit der Größe oder dem Inhalt des Arrays zu tun
quelle
Ich nehme an, $ arr ist ein Array, dann ist es das, wonach Sie suchen
quelle
Die erste Methode
if (isset($arr['1']))
funktioniert nicht mit einem assoziativen Array.Der folgende Code zeigt beispielsweise "Nein, nicht mehr als eins" an.
quelle
Ich mache meine Array-Schleifen und fülle die Standardeinstellungen in Swift 4/5 entsprechend aus
quelle