在 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中文网其他相关文章!