php多維陣列去除空元素

奮程式序猿發表於2016-11-03

在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;
}

如有更好的方法可以指出!

轉載請標明出處:http://www.cnblogs.com/phpshen/p/6027388.html

相關文章