Avatar ·

如何检查 PHP 数组是关联数组还是顺序数组(索引数组)?

大家好!我写 PHP 已经几个月了,经常遇到一个问题:我需要判断一个数组是普通列表(数字键 0, 1, 2...)还是关联数组(字符串键,例如 'name', 'age')。这对于正确处理数据很重要,比如在转换为 JSON 或传递给期望特定格式的函数时。 下面是一个例子。我有一个函数,它接受一个数组并根据类型以不同方式处理: ```php function processData($data) { // 如果数组是顺序的——作为列表遍历元素 // 如果是关联的——处理键 // 如何在函数内部检查? } ``` 我尝试过使用 `array_keys()` 检查,但这看起来像是一个临时方案。我还读过关于 `is_numeric()` 的内容,但不确定它是否可靠。有人提到 `array_values()`,有人提到 `range()`。 请告诉我检查数组是关联数组还是顺序数组的最正确且高效的方法。