Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich zuverlässig feststellen, ob ein PHP-Array eine sequentielle Liste ist?

Wie kann ich zuverlässig feststellen, ob ein PHP-Array eine sequentielle Liste ist?

Linda Hamilton
Linda HamiltonOriginal
2024-12-20 12:14:09547Durchsuche

How Can I Reliably Determine if a PHP Array is a Sequential List?

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

  • Liste ( Sequentielles Array): Enthält nur numerische Tasten beginnend bei 0 und bildet eine Sequenz.
$sequentialArray = [
    'apple', 'orange', 'tomato', 'carrot'
];
  • Assoziatives Array: Besteht sowohl aus Zeichenfolgen als auch aus numerischen Tasten und ermöglicht so eine vielseitigere Datenorganisation.
$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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn