當前位置: 首頁> 最新文章列表> 使用array_filter() 篩選出整數項

使用array_filter() 篩選出整數項

M66 2025-06-04

在PHP 中, array_filter()是一個非常實用的函數,它可以用來自定義篩選數組中的元素。通過傳入一個回調函數,我們可以根據特定的邏輯條件來保留或移除數組中的元素。在本文中,我們將介紹如何使用array_filter()篩選出數組中。

array_filter() 的基本語法

array_filter(array $array, ?callable $callback = null, int $mode = 0): array
  • $array :需要被過濾的原始數組。

  • $callback :用於判斷每個元素是否保留的回調函數,返回true表示保留, false表示剔除。

  • $mode :可選參數,用於控制傳入回調函數的參數(鍵、值或鍵值對)。

如果沒有提供$callback ,默認會過濾掉值為false的元素(例如0 、空字符串、 null等)。

示例:篩選出數組中的整數項

假設我們有一個數組,其中包含各種類型的數據,比如字符串、浮點數、布爾值和整數。我們希望只保留整數。

 <?php
$data = [1, '2', 3.5, 4, 'hello', true, 0, null, 7, '8'];

$integers = array_filter($data, function ($item) {
    return is_int($item);
});

print_r($integers);
?>

輸出結果:

 Array
(
    [0] => 1
    [3] => 4
    [8] => 7
)

可以看到,數組中只有真正的整數被保留下來了,而像'2' (字符串)或3.5 (浮點數)都被過濾掉了。

小技巧:保留鍵索引的處理

默認情況下, array_filter()會保留原數組的鍵索引。如果你想重新索引,可以使用array_values()

 $integers = array_values(array_filter($data, function ($item) {
    return is_int($item);
}));

實際應用場景

這種過濾方式在實際開發中非常有用。例如,你從用戶輸入或遠程API 獲取到一個混合數據數組,需要對其進行類型驗證或數據清洗時,可以使用array_filter()快速處理。

比如:

 // 模擬從遠程接口獲取到的數據
$response = json_decode(file_get_contents("https://api.m66.net/data"), true);

$cleaned = array_filter($response['values'], function ($value) {
    return is_int($value);
});

這段代碼中,我們從https://api.m66.net/data獲取到數據後,使用array_filter()把非整數值都剔除了。

結語

array_filter()是PHP 中一個功能強大的數組處理函數,配合回調函數可以實現各種自定義篩選邏輯。通過它,我們可以方便地從數組中提取出需要的元素,比如整數、字符串或者符合特定規則的數據。

記住,配合is_int()這樣的內置類型檢測函數使用,可以讓你的數據更乾淨、更可靠,也讓代碼更加優雅。

如果你有更多處理數組的需求, array_map()array_reduce()這些函數也是很值得一試的利器!