现在我有以下数组:
$test = array(
'allow' => array(
'access_level' => array(
'manager',
'admin',
),
),
),
我正在对它进行foreach
循环:
foreach($test['allow'] as $key => $value) {
if(is_array($key)){
echo "Its an array within an array!";
}
}
但关键不是数组。我怎么能弄清楚access_level
是一个数组还是只指向一个值?
答案 0 :(得分:6)
将is_array($key)
更改为is_array($value)
。
答案 1 :(得分:3)
尝试
if(is_array($value)){
// echo ...
}
或者:
if(is_array($test['allow'][$key])){
// echo ...
}
答案 2 :(得分:1)
这是因为key
是元素的索引,而不是元素的值
你应该针对is_array()
测试$value
(这是循环中的当前元素)像这样:
is_array($value)
或者,针对与$key
匹配的数组元素,如下所示:
is_array($test['allow'][$key])
答案 3 :(得分:0)
foreach($test['allow'] as $key => $value) {
^ mind the dollar sign here
if(is_array($value)){
echo "Its an array within an array!";
}
}
您应该检查$value
,而不是$key
。
答案 4 :(得分:0)
您的密钥为access_level
,access_level
的值为
array(
'manager',
'admin',
),
检查值是否为数组,而不是键。
在PHP中不可能将数组的键作为数组