php判断数组是数值数组
具体思路:获取数组的所有键:“array_keys()”
遍历所有键判断是否按照顺序从0开始每个增一。
具体方法如下:(推荐学习:php编程从入门到精通)
function _checkassocarray($arr) { $index = 0; foreach (array_keys($arr) as $key) { if ($index++ != $key) return false; } return true; }
逻辑很简单,关联数组的键不会全部都按照:0,1,2,3…的顺序递增,如果它确实这样,那么和数值数组没有任何区别,相同处理即可。
function is_assoc($arr) {return array_keys($arr) !== range(0, count($arr) - 1);}
测试
$arr = array(1, 2, 3, 4, 5, 6, 7);print is_assoc($arr); // 输出false$arr = array("foo" => "bar", "bar" => "foo");print is_assoc($arr); // 输出true$arr = array("foo" => "bar", 3, 4, 5);print is_assoc($arr); // 输出true
以上就是php判断数组是否为数值数组的详细内容。