可能重复:
PHP Arrays: A good way to check if an array is associative or numeric?
我的一个函数的一个参数采用以下类型的值:
null,
'*','',
array('domain1','domain2'),
array('domain1'=>'*','domain2'=>'group1','domain3'=>array('group1','group2')),
我在尝试确定参数的类型时遇到问题。特别是,在确定它是否是一个数组及其关键参数时。
如何基本确定参数类型?
答案 0 :(得分:0)
您可以使用is_array
函数查看参数是否为数组。您是否可以提供代码以提供更多详细信息?
答案 1 :(得分:0)
答案 2 :(得分:0)
答案 3 :(得分:0)
如果你想要一个简单的衬垫来确定类型,你可能根本不想使用数组。您可能会发现将数据填充到特定类的对象中会更有用。
然后,您可以使用instanceof
或is_a()
来测试对象类型。
使用对象还可以为数据结构提供附加功能。并且它仍然可以被视为一个数组(例如,使用foreach()
等),使其成为迭代器。
如果您希望坚持使用数组,并且想要区分键控数组和数字数组,则可以检查this question的答案。
最佳答案是以下几行中的简短功能:
function array_isassoc(array $array) {
return array_keys($array) !== range(0,count($array)-1);
}
这将为键控数组返回true
或为数字数组返回false
。
它可能是您可以使用的最可靠的方法,但如果您有一个数字数组并从中删除元素而不重新编号键,它将停止工作。