使用 unset 和 array_filter 过滤多维数组
class A{
/**
* 多维数组过滤包含指定元素的子数组
* $menu_list 菜单列表(一个四维数组)
* $mmenu 接收过滤后的菜单
* $member_limits 保存在用户表中的菜单字段
*/
public function Multi_dimensional_array (){
$menu_list = $this->_getMemberMenuList();//菜单列表,包含所有菜单项
$mmenu = array(); //接收过滤后的菜单
$member_limits = $this->member_limits(); //保存在用户表中的菜单字段
// 用&对原始数据进行写操作
foreach($menu_list as &$value){
foreach($value["child"] as $k => $v){
if(!in_array($k,$member_limits)){//判断用户表中没有的字段清除元素
//清除元素
unset($value["child"][$k]);
}
}
}
// array($this,"_Filter") 相当于 $this->_Filter()
$mmenu = array_filter($menu_list, array($this,"_Filter"));
}
/**
* array_filter 数组回调函数
* 将判断为空的指定元素过滤掉
*/
protected function _Filter($value){
foreach($value["child"] as $k => $v){
$result = isset($value["child"]);
if($result){
return $result ;
}
}
}
}声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: PHP在多维数组指定位置插入单元
