本文主要是介绍使用 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 ;}}}
}
这篇关于使用 unset 和 array_filter 过滤多维数组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!