首頁  >  文章  >  後端開發  >  php怎麼去掉不是整數的陣列

php怎麼去掉不是整數的陣列

PHPz
PHPz原創
2023-04-26 14:20:08444瀏覽

在PHP中,有時候我們需要操作數組中的整數元素。但是,如果數組中存在非整數類型的元素,這可能會導致後續的計算操作出現錯誤。因此,我們需要想辦法去掉這些非整數元素。

下面,我將介紹幾種實作這個功能的方法。

方法一:使用is_int()函數過濾

is_int()函數可以判斷一個變數是否為整數。我們可以遍歷數組中的每一個元素,並使用is_int()函數判斷它是否為整數型態。如果是整數,則將它加到新數組中,否則忽略這個元素。

下面是一段程式碼範例:

$array = array(1, 2, "foo", 3.5, "bar", 4);

$new_array = array();

foreach ($array as $value) {
    if (is_int($value)) {
        $new_array[] = $value;
    }
}

print_r($new_array); // 输出:Array ( [0] => 1 [1] => 2 [2] => 4 )

在這個範例中,我們定義了一個原始陣列$array,其中包含了整數、字串和浮點數。透過遍歷數組,我們使用is_int()函數來判斷每個元素是否為整數類型。最終,我們將所有的整數元素加入到新陣列$new_array中。

方法二:使用ctype_digit()函數來篩選

除了is_int()函數,PHP也提供了一個ctype_digit()函數,可以用來判斷一個字串是否只包含數字字元。因此,我們可以將數組中的非整數元素轉換成字串類型,然後使用ctype_digit()函數來判斷它是否為整數類型。

下面是程式碼範例:

$array = array(1, 2, "foo", 3.5, "bar", 4);

$new_array = array();

foreach ($array as $value) {
    if (ctype_digit(strval($value))) {
        $new_array[] = (int) $value;
    }
}

print_r($new_array); // 输出:Array ( [0] => 1 [1] => 2 [2] => 4 )

在這個範例中,我們先將陣列中的每一個元素轉換成字串類型,然後使用ctype_digit()函數判斷它是否為整數類型。最終,如果是整數類型,則將它轉換成整數類型並新增至新陣列$new_array。

方法三:使用array_filter()函數過濾

PHP內建的array_filter()函數可以過濾陣列中的元素,並傳回一個新陣列。我們可以使用這個函數來快速地去掉數組中的非整數元素。

下面是程式碼範例:

$array = array(1, 2, "foo", 3.5, "bar", 4);

$new_array = array_filter($array, 'is_int');

print_r($new_array); // 输出:Array ( [0] => 1 [1] => 2 [5] => 4 )

在這個範例中,我們直接使用array_filter()函數過濾陣列中的元素,並保留整數類型的元素。要注意的是,這個函數只會保留元素的值,而不會保留它們先前的下標。

總結

以上就是幾種去掉陣列中非整數元素的方法。不同的方法適用於不同的情況,需要根據實際情況選用。在使用is_int()函數和ctype_digit()函數時,需要注意型別轉換的問題。在使用array_filter()函數時,需要注意元素下標的變化。掌握這些方法,可以幫助我們更有效率地操作數組中的整數元素。

以上是php怎麼去掉不是整數的陣列的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn