Home > Article > Backend Development > php remove empty data from array
In PHP, array is a very commonly used data type, which can be used to store a set of data. However, in daily development, we often encounter situations where we need to eliminate empty data in an array. This article will introduce how to eliminate empty data in an array by writing PHP code.
In order to better understand the content of this article, we first need to understand what an array is and what is empty data.
An array can be understood as an ordered collection of values, each of which can be accessed through a unique identifier (index). In PHP, arrays can be created through the array() function or through the concise [] syntax. Here is an example of a PHP array:
$array = array("apple", "orange", "banana", "");
In the above example, we have created an array with four elements, where the fourth element is an empty string.
Empty data refers to data whose value in the array is null, empty string, empty array, false, 0, or an object without any attributes. In PHP, you can use the empty() function to determine whether a variable has empty data.
Now, we can officially start to introduce how to remove empty data in the array. The following are two commonly used methods:
Use PHP’s built-in array_filter() function. This function can pass the element in the array into a callback function and determine whether to retain the element based on the return value of the callback function. For example, the following code will eliminate elements in the array whose values are null, false, empty string, empty array, and 0:
$array = array("apple", "", "orange", null, "banana", false, array(), 0); $array = array_filter($array, function ($item) { if (is_array($item) && count($item) == 0) { return false; // 保留非空数组 } return !empty($item); // 剔除空字符串、null、false、0 });
In the above code, we first create an array containing various types of elements. array. Then, call the array_filter() function and pass in an anonymous function. In the anonymous function, we process the elements in the array and return a Boolean value. If this value is true, the element is retained, otherwise it is removed.
It should be noted that in the anonymous function we perform some special processing on the elements in the array. When the value of an element is an array, we also need to determine whether it is an empty array, and if so, retain it. This is because an empty array is also considered a null value in PHP.
Finally, we get a new array that does not contain empty data. The following is the result of using the print_r() function to output a new array:
Array ( [0] => apple [2] => orange [4] => banana )
As you can see, the new array only contains non-empty elements in the original array.
Use a loop to traverse the original array and delete the empty data. This method is relatively simple, but requires manually writing loop code. For example, the following code will use a foreach loop to iterate through an array and remove empty data from it:
$array = array("apple", "", "orange", null, "banana", false, array(), 0); foreach ($array as $key => $value) { if (is_array($value) && count($value) == 0) { unset($array[$key]); // 剔除空数组 } elseif (empty($value)) { unset($array[$key]); // 剔除空字符串、null、false、0 } }
In the above code, we first create an array containing elements of various types. Then, use a foreach loop to loop through the array and check if each element is empty data. If so, use the unset() function to remove the element.
It should be noted that when deleting array elements, we use the unset() function instead of using unset($array[$key]) directly. This is because if we delete elements directly using unset($array[$key]), the index of the array will be re-indexed, which may lead to some unexpected errors. Using the unset() function can avoid this problem.
Finally, we also get a new array that does not contain empty data. The following is the result of using the print_r() function to output a new array:
Array ( [0] => apple [2] => orange [4] => banana )
As you can see, the new array only contains non-empty elements in the original array.
To sum up, this is how to eliminate empty data in an array by writing PHP code. Whether using the array_filter() function or loop traversal, it can help us easily remove empty data from the array, making our code more concise and efficient.
The above is the detailed content of php remove empty data from array. For more information, please follow other related articles on the PHP Chinese website!