如何检查数组是否列表?

时间:2011-03-25 11:24:48

标签: php arrays list

  

可能重复:
  PHP Arrays: A good way to check if an array is associative or sequential?

您好:)

我想知道检查数组是否

的最短(最好)方法是什么

列表: array('a', 'b', 'c')

或者它是一个关联数组: array('a' => 'b', 'c' => 'd')

fyi:我需要这个来制作自定义json_encode功能

1 个答案:

答案 0 :(得分:13)

function is_assoc($array){
    return array_values($array)!==$array;
}

请注意,如果数组已编入索引但包含孔或不以0开头,或者未对键进行排序,则它也将返回TRUE。我通常更喜欢使用此功能,因为它提供了最佳性能。 作为这些情况的替代方案,我更喜欢这个(请记住它几乎比上面慢4倍):

function is_assoc($array){
    return !ctype_digit( implode('', array_keys($array)) );
}

使用ksort()作为Rinuwise评论有点慢。