/**
* 判断数组是关联数组还是索引数组
* @param $array
*/
function AssociativeOrIndexArray($array){
if (!is_array($array)){
echo 'not array';
return;
}
$c = count($array);
$in = array_intersect_key($array,range(0,$c-1));
if(count($in) == $c) {
echo '索引数组';
}else if(empty($in)) {
echo '关联数组';
}else{
echo '混合数组';
}
}
//索引数组
$arr = array(1,2,3,4);
//关联数组
$arr = array('a'=>'a1','b'=>'b1','c'=>'c1');
//混合数组
$arr = array(1,'a'=>'a1',2,3,'cc'=>'4');
//索引数组
$arr = [ '0'=>'是', '1'=>'否' ];
AssociativeOrIndexArray($arr);
我测试的结果$arr = [ '0'=>'是', '1'=>'否' ]
是索引数组,怎么看起来好像关联数组结构?!
猛跑小猪
森栏
炎炎设计