ホームページ >バックエンド開発 >PHPチュートリアル >PHP 配列がシーケンシャル リストであるかどうかを確実に判断するにはどうすればよいですか?

PHP 配列がシーケンシャル リストであるかどうかを確実に判断するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-20 12:14:09522ブラウズ

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

PHP 配列の連想配列と順次配列の区別

PHP は本質的にすべての配列を連想配列として認識するため、リストのように動作する配列を区別することが困難になります。これを解決するために、配列がリストとして適格であるかどうかを判断するための信頼できる方法を検討します。

リストと連想配列

  • リスト ( Sequential Array): 0 から始まる数値キーのみが含まれており、シーケンス。
$sequentialArray = [
    'apple', 'orange', 'tomato', 'carrot'
];
  • 連想配列: 文字列キーと数値キーの両方で構成され、より汎用性の高いデータ編成が可能になります。
$assocArray = [
    'fruit1' => 'apple',
    'fruit2' => 'orange',
    'veg1' => 'tomato',
    'veg2' => 'carrot'
];

PHP 8.1 および

PHP 8.1 では、配列がリストであるかどうかを簡単にチェックするための array_is_list() が導入されました。

array_is_list($sequentialArray); // true

以前の PHP バージョンのレガシー ソリューション

8.1 より前の PHP バージョンに対応するために、カスタムを定義できます。 function:

function array_is_list(array $arr)
{
    if ($arr === []) {
        return true;
    }
    return array_keys($arr) === range(0, count($arr) - 1);
}

関数のテスト

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

これらの方法を活用することで、開発者は連想配列と順次配列を効果的に区別でき、より正確で効率的な配列を実現できます。 PHP アプリケーションでの処理

以上がPHP 配列がシーケンシャル リストであるかどうかを確実に判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。