在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中文網其他相關文章!