一、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使用。在實際應用中,可以根據實際需要靈活選擇不同的方法。
原創文章,作者:JCDNX,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/370537.html