Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich zuverlässig feststellen, ob ein PHP-Array eine sequentielle Liste ist?
Unterscheidung assoziativer und sequenzieller PHP-Arrays
PHP erkennt von Natur aus alle Arrays als assoziativ, was es schwierig macht, zwischen Arrays zu unterscheiden, die sich wie Listen verhalten. Um dieses Problem zu lösen, untersuchen wir eine zuverlässige Methode, um festzustellen, ob ein Array als Liste qualifiziert ist.
Liste vs. assoziative Arrays
$sequentialArray = [ 'apple', 'orange', 'tomato', 'carrot' ];
$assocArray = [ 'fruit1' => 'apple', 'fruit2' => 'orange', 'veg1' => 'tomato', 'veg2' => 'carrot' ];
Identifizieren von Listen in PHP 8.1 und Darüber hinaus
PHP 8.1 führte array_is_list() ein, um bequem zu prüfen, ob ein Array eine Liste ist:
array_is_list($sequentialArray); // true
Legacy-Lösung für frühere PHP-Versionen
Um PHP-Versionen vor 8.1 gerecht zu werden, können wir eine benutzerdefinierte Version definieren Funktion:
function array_is_list(array $arr) { if ($arr === []) { return true; } return array_keys($arr) === range(0, count($arr) - 1); }
Testen der Funktion
var_dump(array_is_list([])); // true var_dump(array_is_list(['a', 'b', 'c'])); // true var_dump(array_is_list(["0" => 'a', "1" => 'b', "2" => 'c'])); // true var_dump(array_is_list(["1" => 'a', "0" => 'b', "2" => 'c'])); // false var_dump(array_is_list(["a" => 'a', "b" => 'b', "c" => 'c'])); // false
Durch die Nutzung dieser Methoden können Entwickler effektiv zwischen assoziativen und sequentiellen Arrays unterscheiden und so ein präziseres und effizienteres Array ermöglichen Handhabung in ihren PHP-Anwendungen.
Das obige ist der detaillierte Inhalt vonWie kann ich zuverlässig feststellen, ob ein PHP-Array eine sequentielle Liste ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!