首页 >后端开发 >php教程 >如何区分 PHP 中的关联数组和顺序数组?

如何区分 PHP 中的关联数组和顺序数组?

DDD
DDD原创
2025-01-01 07:13:11290浏览

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

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn