In PHP programming, we often encounter situations where null values in arrays need to be removed. This situation may occur in scenarios such as data cleaning and data filtering. There are several ways to achieve this in PHP, and we'll go over these in detail below, along with their pros and cons.
Method 1: Use array_filter() function
array_filter() function can return a new array, in which elements that do not meet the conditions of the custom function are filtered out. We can construct a custom function to determine whether an element is null.
The sample code is as follows:
$array = array("foo", "", "bar", null, "baz"); $new_array = array_filter($array, function($item) { return !empty($item); });
In this example, the $array
array contains empty strings, null values and non-empty elements, through array_filter( )
function, we get a new array that does not contain null values, namely $new_array
.
It should be noted that the array_filter()
function will remove the following values by default:
If you need to remove other values, you can pass the second parameter through a custom function for filtering.
Advantages: array_filter()
The function is simple to use and the filtering conditions can be customized.
Disadvantages: Compared with other methods, this method has poor performance, especially for medium and large arrays.
Method 2: Use foreach loop to remove null values
This method is more direct. You can traverse the array through foreach loop, and then use the weak type feature of PHP (null values will be automatically converted to false) to determine and remove null values.
The sample code is as follows:
$array = array("foo", "", "bar", null, "baz"); foreach($array as $key => $value) { if(!$value) { unset($array[$key]); } }
In this example, we traverse the $array
array. If the value of the element is false, that is, it is judged to be a null value, then use unset()
Function removes the element.
Advantages: Compared with the array_filter()
function, this method has better performance for large-scale arrays.
Disadvantages: Conditional judgment needs to be added manually, and the code is not concise enough.
Method 3: Use the array_diff() function
array_diff()
The function is used to calculate the difference set of array values. We can use this to remove null values.
The sample code is as follows:
$array = array("foo", "", "bar", null, "baz"); $new_array = array_diff($array, array("", null));
In this example, we use the array_diff()
function to calculate the $array
array and an array containing an empty string and The difference between the arrays of null values, resulting in a new array $new_array
. We can see that this method can filter multiple values at once.
It should be noted that this method can only filter hard-coded null values and cannot customize filter conditions.
Advantages: The code is simple and multiple values can be filtered at one time.
Disadvantages: Unable to customize filter conditions.
To sum up, for large-scale arrays, we recommend using method two; for small-scale arrays, you can choose method one or method three.
The above is the detailed content of How to remove null values from php array. For more information, please follow other related articles on the PHP Chinese website!