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 サイトの他の関連記事を参照してください。