在 PHP 中确定关联数组与顺序数组
PHP 将所有数组维护为关联数组,因此需要替代方法来区分关联数组和顺序数组数组,特别是那些仅包含从以下位置开始的数字键的数组0.
解决方案:array_is_list()函数
PHP 8.1引入了array_is_list()函数,提供了一个简单的解决方案:
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 8.1 的遗留代码,可以使用以下自定义函数:
function array_is_list(array $arr) { if ($arr === []) { return true; } return array_keys($arr) === range(0, count($arr) - 1); }
此函数实现与 array_is_list( ) 函数,使其可以跨不同 PHP 版本移植。
以上是如何区分 PHP 中的关联数组和顺序数组?的详细内容。更多信息请关注PHP中文网其他相关文章!