首頁 > 後端開發 > PHP問題 > php怎麼清除數組中的非數字元素

php怎麼清除數組中的非數字元素

PHPz
發布: 2023-04-19 11:46:25
原創
790 人瀏覽過

在PHP開發中,陣列是一種非常重要的資料型態。我們可能需要在陣列中清除所有非數字元素,以便進行更複雜的計算或其他操作。

本文將介紹如何使用PHP清除陣列中的非數字元素,並提供一些實用的範例來幫助讀者更好地理解這個過程。

  1. 使用PHP內建函數array_filter()

array_filter()函數可以遍歷陣列並刪除不符合條件的元素。我們可以使用這個函數透過一個自訂的函數來過濾數組,只保留其中的數字元素。以下是程式碼範例:

$array = array("string", 1234, "5", "67.8", 90);

function only_num($var)
{
    return is_numeric($var);
}

$result = array_filter($array, "only_num");

print_r($result);  //输出:Array ( [1] => 1234 [2] => 5 [3] => 67.8 [4] => 90 )
登入後複製

在上面的範例中,我們使用is_numeric()函數,這個函數判斷給定的變數是否是一個數字或數字字串。然後,我們將這個函數作為回調函數傳遞給array_filter()函數來處理陣列。

  1. 使用正規表示式

正規表示式是一種非常有用的文字處理工具,可以使用它來匹配和取代某個模式的文字。在本案例中,我們可以使用正規表示式來匹配所有的數字,並刪除非數字元素。

以下是清洗數組的正規表示式範例:

$array = array("string", 1234, "5", "67.8", 90);

foreach ($array as $key => $value) {
    if (preg_match('/^\d+$/',$value) !== 1) {
        unset($array[$key]);
    }
}

print_r($array);  //输出:Array ( [1] => 1234 [2] => 5 [4] => 90 )
登入後複製

在上面的範例中,我們使用preg_match()函數和正規表示式「/^\d $/」來匹配所有的數字字串。如果匹配成功(返回1),則表示這個元素是數字。否則,我們將呼叫unset()函數來刪除這個元素。最後,我們將剩餘的數位元素輸出到螢幕上。

  1. 使用array_walk()函數

array_walk()函數是另一個PHP內建函數,可以用於遍歷陣列並對每個元素執行自訂的函數。我們可以使用這個函數來清除陣列中的非數字元素。

以下是使用array_walk()函數來清理陣列的範例:

$array = array("string", 1234, "5", "67.8", 90);

function only_num(&$value, $key)
{
    if (!is_numeric($value)) {
        unset($value);
    }
}

array_walk($array, "only_num");

print_r($array);  //输出:Array ( [1] => 1234 [2] => 5 [3] => 67.8 [4] => 90 )
登入後複製

在上面的範例中,我們將回呼函數傳遞給array_walk()函數來清除非數字元素。當元素不是數字時,我們將它刪除,以便只保留數字元素。

結論

在PHP開發中,使用陣列是非常常見的。有時候,我們需要從陣列中刪除所有非數字元素,以便進行複雜的計算或其他操作。本文介紹了三種不同的方法來實現這個目標:使用PHP內建函數array_filter()、使用正規表示式和使用array_walk()函數。你可以根據自己的需求選擇不同的方法,並根據實際情況進行修改和調整。在實際開發中,這個技巧應該會很有用。

以上是php怎麼清除數組中的非數字元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板