我有以下数组声明
Array
(
[name] => 1
[callrate] => 1
[maxcalls] => 100000
[mintime] => 5
[maxtime] => 16
[skillexps] => Array
(
[0] => 1
[1] => 2
)
)
如何检查数组包含的数组.我尝试了
function is_multi($a) {
foreach ($a as $v) {
if (is_array($v))
{
return "has array";
break;
}
break;
}
return 'only value';
}
但这仅给出“唯一的价值”.我需要检查如果关联数组是二维的
感谢advacne
解决方法:
为什么您现有的代码不起作用?
因为您要查找数组的每个元素以检查它是否是数组,还是不使用foreach()和is_array()?如果没有,那就休息;因此,当它检查name元素的值不是数组时,它只是一个整数,因此立即中断;并退出foreach()循环并仅返回值,但是当我删除多余的中断时;从您的代码来看,它工作正常,因为然后它检查数组中的每个元素以验证它是否包含数组.我还添加了一种很好的方法来检查数组是否为多维.希望这可以帮助 :)
function is_multi($a) {
foreach ($a as $v) {
if (is_array($v))
{
return "has array";
break;
}
// removed extra break; from here
}
return 'only value';
}
要检查数组是否是多维的?我会这样
function is_multi(array $array) {
return count($array) !== count($array, COUNT_RECURSIVE);
}
$array = array
(
'name' => 1,
'callrate' => 1,
'maxcalls' => 100000,
'mintime' => 5,
'maxtime' => 16,
'skillexps' => array
(
1,
2
)
);
echo is_multi($array);
?>
标签:arrays,php
来源: https://codeday.me/bug/20191108/2008531.html