ホームページ >バックエンド開発 >PHPチュートリアル >PHP で順次配列と連想配列を区別するにはどうすればよいですか?

PHP で順次配列と連想配列を区別するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-15 16:07:10830ブラウズ

How Can I Differentiate Between Sequential and Associative Arrays in PHP?

PHP での連想配列または順次配列の識別

PHP ではデフォルトで配列が連想配列として扱われるため、順次配列と連想配列を区別することが困難になります。これは、配列を「リスト」(0 から始まる数値キー) または連想配列 (名前付きキー) として分類する必要があることから生じます。

連続配列の識別

配列がシーケンシャルであるかどうかを判断するには、次の関数を使用できます:

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

使用この関数を使用すると、次の配列を区別できます:

$arr1 = ['apple', 'orange', 'tomato', 'carrot'];
$arr2 = ['fruit1' => 'apple', 'fruit2' => 'orange', 'veg1' => 'tomato', 'veg2' => 'carrot'];

var_dump(array_is_list($arr1)); // true (sequential array)
var_dump(array_is_list($arr2)); // false (associative array)

レガシー コードと PHP 8.1

PHP 8.1 以降の場合、組み込みの array_is_list() 関数カスタム関数が不要になります:

var_dump(array_is_list(['a', 'b', 'c'])); // true
var_dump(array_is_list(['1' => 'a', '0' => 'b', '2' => 'c'])); // true
var_dump(array_is_list(['a' => 'a', 'b' => 'b', 'c' => 'c'])); // false

以上がPHP で順次配列と連想配列を区別するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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