在不必更改函数签名的情况下,我希望 PHP 函数在给定关联数组而不是常规数组时表现不同。
注意:您可以假设数组是同构的。例如,array(1,2,"foo"=> "bar")
不被接受,可以忽略。
function my_func(Array $foo){
if (…) {
echo "Found associated array";
}
else {
echo "Found regular array";
}
}
my_func(array("foo" => "bar", "hello" => "world"));
# => "Found associated array"
my_func(array(1,2,3,4));
# => "Found regular array"
这可以用 PHP 实现吗?
最佳答案
只需检查任意键的类型:
function is_associative(array $a) {
return is_string(key($a));
}
$a = array(1 => 0);
$a2 = array("a" => 0);
var_dump(is_associative($a)); //false
var_dump(is_associative($a2)); //true
关于php - 区分关联数组和常规数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3471443/