In PHP, sometimes we need to operate on integer elements in an array. However, if there are elements of non-integer type in the array, this may cause errors in subsequent calculation operations. Therefore, we need to find a way to remove these non-integer elements.
Below, I will introduce several methods to achieve this function.
Method 1: Use the is_int() function to filter
The is_int() function can determine whether a variable is an integer. We can iterate through each element in the array and use the is_int() function to determine whether it is an integer type. If it is an integer, add it to the new array, otherwise ignore the element.
The following is a code example:
$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 )
In this example, we define a primitive array $array, which contains integers, strings and floating point numbers. By traversing the array, we use the is_int() function to determine whether each element is an integer type. Finally, we add all integer elements to the new array $new_array.
Method 2: Use the ctype_digit() function to filter
In addition to the is_int() function, PHP also provides a ctype_digit() function, which can be used to determine whether a string only contains numeric characters. Therefore, we can convert the non-integer element in the array to a string type, and then use the ctype_digit() function to determine whether it is an integer type.
The following is a code example:
$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 )
In this example, we first convert each element in the array to a string type, and then use the ctype_digit() function to determine whether it is an integer type . Finally, if it is an integer type, it is converted to an integer type and added to the new array $new_array.
Method 3: Use the array_filter() function to filter
PHP’s built-in array_filter() function can filter the elements in the array and return a new array. We can use this function to quickly remove non-integer elements from an array.
The following is a code example:
$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 )
In this example, we directly use the array_filter() function to filter the elements in the array and retain the elements of integer type. Note that this function will only retain the values of the elements, not their previous subscripts.
Summary
The above are several ways to remove non-integer elements from an array. Different methods are suitable for different situations and need to be selected according to the actual situation. When using the is_int() function and ctype_digit() function, you need to pay attention to type conversion issues. When using the array_filter() function, you need to pay attention to the change of element subscripts. Mastering these methods can help us operate the integer elements in the array more efficiently.
The above is the detailed content of How to remove arrays that are not integers in php. For more information, please follow other related articles on the PHP Chinese website!