-1

可能重复:
PHP 数组:检查数组是关联数组还是数字数组的好方法?

我的一个函数的一个参数采用以下类型的值:

null,

'*','',

array('domain1','domain2'),

array('domain1'=>'*','domain2'=>'group1','domain3'=>array('group1','group2')),

我在尝试确定参数的类型时遇到问题。特别是在确定它是否是一个数组及其关键参数时。

基本如何确定参数类型?

4

4 回答 4

0

您可以使用is_array函数来确定参数是否为数组。您能给我们您的代码以提供更多详细信息吗?

于 2013-01-18T15:13:43.783 回答
0

PHP gettype函数应该做你想做的事。要检查特定类型,您可以使用 is_* 函数,例如 is_array。您可以在此处找到有关它们的信息。

于 2013-01-18T15:13:54.103 回答
0

php为此提供了大量的功能。

是其中大部分(如果不是全部)的搜索。

您将主要使用以is( is_array(), is_null(), isset())开头的函数

于 2013-01-18T15:14:05.603 回答
0

如果您想要一个简单的方法来确定类型,您可能根本不想使用数组。您可能会发现将数据填充到特定类的对象中会更有用。

然后您可以使用instanceof或测试对象类型is_a()

使用对象还可以使您能够为数据结构提供附加功能。foreach()通过使其成为迭代器,它仍然可以被视为一个数组(例如 with等)。

如果您更喜欢使用数组,并且想要区分键控数组和数字数组,您可以查看此问题的答案。

最好的答案是一个简短的函数,如下所示:

function array_isassoc(array $array) {
    return array_keys($array) !== range(0,count($array)-1);
}

这将返回true键控数组或false数值数组。

这可能是您可以使用的最可靠的方法,尽管如果您有一个数字数组并从中删除元素而不重新编号键,它将停止工作。

于 2013-01-18T15:18:47.160 回答