PHP将所有数组视为关联数组,因此没有任何内置函数。有人能推荐一种相当有效的方法来检查数组是否只包含数字键吗
基本上,我希望能够区分这两种情况:
$sequentialArray=[
‘苹果’、‘橘子’、‘西红柿’、‘胡萝卜’
];
这是:
$assocArray=[
“水果1”=>;“苹果”,
“水果2”=>;“橙色”,
“veg1”=>;“西红柿”,
“veg2”=>;“胡萝卜”
];
您提出了两个不完全相同的问题:
- 首先,如何确定数组是否只有数字键
- 其次,如何从0开始确定数组是否具有顺序键
考虑一下您实际需要哪些行为。(可能这两种方法都适用于您的目的。)
第一个问题(简单地检查所有的钥匙是否都是数字)由kurO船长回答得很好
对于第二个问题(检查数组是否为零索引和顺序),可以使用以下函数:
函数isAssoc(数组$arr)
{
if(array()==$arr)返回false;
返回数组_键($arr)!==范围(0,计数($arr)-1);
}
变量转储(isAssoc(['a','b','c']);//错误的
变量转储(isAssoc([“0”=>;'a',“1”=>;'b',“2”=>;'c']);//错误的
变量转储(isAssoc([“1”=>;'a',“0”=>;'b',“2”=>;'c']);//符合事实的
变量转储(isAssoc([“a”=>;'a',“b”=>;'b',“c”=>;'c']);//符合事实的