2 回答
TA贡献1815条经验 获得超10个赞
没有现成的功能可以做到这一点。假设你有:
$key = 'link';
$value = '/voip/e999?seq=' . $seq;
// and $nav your multidimensionnal array
您可以编写自己的递归函数:
function contains_key_value_multi($arr, $key, $value) {
foreach ($arr as $k => $v) {
if ( is_array($v) && contains_key_value_multi($v, $key, $value) ||
$k === $key && $v === $value )
return true;
}
return false;
}
var_dump(contains_key_value_multi($nav, $key, $value));
您可以使用spl 类来遍历多维数组的叶子。这次你不需要递归函数:
$ri = new RecursiveIteratorIterator(new RecursiveArrayIterator($nav));
function contains_key_value($arr, $key, $value) {
foreach ($arr as $k => $v) {
if ( $k === $key && $v === $value )
return true;
}
return false;
}
var_dump(contains_key_value($ri, $key, $value));
TA贡献1982条经验 获得超2个赞
既然你说值在link
键中,那么你可以使用 array_column 来隔离link
项目。
if(in_array($_GET["nav"], array_column($nav['Account Settings'], "link")) || in_array($_GET["nav"], array_column(array_slice($nav, 1), "link"))){
这将首先查看帐户设置中的所有链接项,然后切出帐户设置并查看链接项的其他两个子数组。
- 2 回答
- 0 关注
- 202 浏览
添加回答
举报