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

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-15 16:07:10829浏览

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

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