可能重复:
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
功能
答案 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评论有点慢。