【发布时间】:2009-05-24 01:28:26
【问题描述】:
除了显式检查数组键之外,是否有一个 php 函数可以用来自动检测数组是否为关联数组?
【问题讨论】:
-
我感觉你的设计有问题。你为什么要这样做?
-
这种需求并不少见,尤其是在编写更通用、非特定于应用程序的代码时。
除了显式检查数组键之外,是否有一个 php 函数可以用来自动检测数组是否为关联数组?
【问题讨论】:
我的简短回答:是的
如果您假设“非关联数组”从 0 开始索引,则更快更容易:
if ($original_array == array_values($original_array))
【讨论】:
0开始连续被认为是关联的,因为它们不能被典型的for ($x++)模式可靠地遍历。因此,这个测试可能是最好的使用。不过,这变成了一场哲学辩论,因为 PHP 数组根本不是一个或另一个。 :)
我 爱 PHP 数组。
引自官网:
索引和关联数组 types 在 PHP 中是相同的类型,
所以我能想到的最佳解决方案是在所有键上运行,或者使用 array_keys,implode,is_numeric
【讨论】:
测试密钥效果很好。
【讨论】:
查看is_array 的讨论。
【讨论】:
简短回答:不。
长答案:关联数组和索引数组在 PHP 中是相同的类型。索引数组是关联数组的子集,其中:
如果需要,您可以尝试使用 array_keys() 进行检测并与 range() 结果进行比较。
【讨论】: