Home  >  Article  >  Backend Development  >  How to clear non-numeric elements in an array in php

How to clear non-numeric elements in an array in php

PHPz
PHPzOriginal
2023-04-19 11:41:47760browse

In PHP development, array is a very important data type. We may need to clear all non-numeric elements in the array in order to perform more complex calculations or other operations.

This article will introduce how to use PHP to clear non-numeric elements in an array, and provide some practical examples to help readers better understand this process.

  1. Use the PHP built-in function array_filter()

The array_filter() function can traverse the array and delete elements that do not meet the conditions. We can use this function to filter an array through a custom function, retaining only numeric elements. The following is a code example:

$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 )

In the above example, we use the is_numeric() function, which determines whether the given variable is a number or a numeric string. We then pass this function as a callback function to the array_filter() function to process the array.

  1. Using regular expressions

Regular expressions are a very useful text processing tool that can be used to match and replace text with a certain pattern. In this case, we can use regular expressions to match all numbers and remove non-number elements.

The following is an example of a regular expression for cleaning an array:

$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 )

In the above example, we use the preg_match() function and the regular expression "/^\d $/" to match all numeric string. If the match is successful (1 is returned), the element is a number. Otherwise, we will call the unset() function to delete the element. Finally, we output the remaining numeric elements to the screen.

  1. Using the array_walk() function

The array_walk() function is another PHP built-in function that can be used to traverse an array and perform a custom function on each element. We can use this function to clear non-numeric elements from an array.

The following is an example of using the array_walk() function to clean an array:

$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 )

In the above example, we pass the callback function to the array_walk() function to clear the non-numeric elements. When the element is not a number, we remove it so that only numeric elements remain.

Conclusion

In PHP development, the use of arrays is very common. Sometimes, we need to remove all non-numeric elements from an array in order to perform complex calculations or other operations. This article describes three different ways to achieve this goal: using the PHP built-in function array_filter(), using regular expressions, and using the array_walk() function. You can choose different methods according to your own needs, and modify and adjust them according to the actual situation. In actual development, this technique should be very useful.

The above is the detailed content of How to clear non-numeric elements in an array in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn