一、array_filter()函数
在PHP中,最简单的去除数组中空值的函数是array_filter()。该函数通过回调函数过滤数组内容,只返回筛选后的数据,从而去除了数组中的空值。
//定义数组
$array = array('php', null, '', 0, false, true);
//去空,并输出结果
$array = array_filter($array);
print_r($array);
使用array_filter()函数,上述代码会输出:Array ( [0] => php [5] => 1 )。
二、自定义函数
使用自定义函数是另一种比较常用的方法,它可以方便地控制去空的内容以及其他的筛选规则。
/**
* 自定义去空函数
* @param array $array
* @return array
*/
function remove_empty(&$array) {
foreach ($array as $key => $value) {
if (is_array($value)) {
remove_empty($array[$key]);
}
if (empty($array[$key])) {
unset($array[$key]);
}
}
return $array;
}
//定义数组
$array = array('php', null, '', 0, false, true);
//去空,并输出结果
$array = remove_empty($array);
print_r($array);
使用上述自定义函数,输出的结果与使用array_filter()函数相同:Array ( [0] => php [5] => 1 )。
三、批量处理数组
对于一个大型的应用程序,可能需要对多个数组进行去空操作。为了避免代码重复,可以通过定义一个全局的函数,将其应用于程序中所有需要去空功能的地方。
/**
* 自定义去空函数
* @param array $array
* @return array
*/
function remove_empty(&$array) {
foreach ($array as $key => $value) {
if (is_array($value)) {
remove_empty($array[$key]);
}
if (empty($array[$key])) {
unset($array[$key]);
}
}
return $array;
}
//批量处理数组
$all_arrays = array(
array('php', null, '', 0, false, true),
array('hello', 'world', null, '', 0, false)
);
foreach ($all_arrays as &$array) {
$array = remove_empty($array);
print_r($array);
}
上述代码用了循环遍历的方法,从而批量处理所有的数组。这样,做到了代码复用。
四、结合AJAX使用
在Web开发中,可能经常使用AJAX技术请求数据。请求回来的数据可能会包含无用的空值,因此需要进行去空操作。
/**
* 自定义去空函数
* @param array $array
* @return array
*/
function remove_empty(&$array) {
foreach ($array as $key => $value) {
if (is_array($value)) {
remove_empty($array[$key]);
}
if (empty($array[$key])) {
unset($array[$key]);
}
}
return $array;
}
//获取AJAX请求的数据
$data = $_POST['data'];
//转换成数组格式,并去空
$data_array = remove_empty(json_decode($data, true));
//返回处理后的数据
echo json_encode($data_array);
上述代码演示了如何使用自定义函数remove_empty()处理AJAX请求。在Web开发中,这是非常常见的应用方式。
五、总结
本文介绍了几种常用的PHP数组去空方法:array_filter()函数、自定义函数、批量处理数组、结合AJAX使用。在实际应用中,可以根据实际需要灵活选择不同的方法。