Bestimmung assoziativer und sequentieller Arrays in PHP
PHP verwaltet alle Arrays als assoziativ, weshalb alternative Methoden zur Unterscheidung zwischen assoziativen und sequenziellen Arrays erforderlich sind Arrays, insbesondere solche, die nur numerische Schlüssel enthalten, beginnend mit 0.
Lösung: Funktion array_is_list()
PHP 8.1 führt die Funktion array_is_list() ein und bietet eine einfache Lösung:
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
Benutzerdefinierte Funktion für Legacy-Code:
Wenn Sie mit Legacy-Code arbeiten, ist dies nicht der Fall Wenn Sie PHP 8.1 unterstützen, kann die folgende benutzerdefinierte Funktion verwendet werden:
function array_is_list(array $arr) { if ($arr === []) { return true; } return array_keys($arr) === range(0, count($arr) - 1); }
Diese Funktion erreicht die gleiche Funktionalität wie die Funktion array_is_list() und ist somit über verschiedene PHP-Versionen hinweg portierbar.
Das obige ist der detaillierte Inhalt vonWie kann ich in PHP zwischen assoziativen und sequentiellen Arrays unterscheiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!