A-A+
php多维数组去除空元素
在php中去除数组中的空值可以使用array_filter() 这个函数 但是这个函数只能对一维数组起作用,一旦需要对多维数组去空就不行了,而且去除的空也包括(int)0,(string)0,使用起来还是有点问题!
自定义函数去除数组中的某个值 默认是空值, 一维数组和多维数组都可以使用!
- /**
- * 去除多维数组中的空值
- * @author
- * @return mixed
- * @param $arr 目标数组
- * @param array $values 去除的值 默认 去除 '',null,false,0,'0',[]
- */
- function filter_array($arr, $values = ['', null, false, 0, '0',[]]) {
- foreach ($arr as $k => $v) {
- if (is_array($v) && count($v)>0) {
- $arr[$k] = filter_array($v, $values);
- }
- foreach ($values as $value) {
- if ($v === $value) {
- unset($arr[$k]);
- break;
- }
- }
- }
- return $arr;
- }
如有更好的方法可以指出!