In PHP, array is one of the commonly used data types. In development, we often need to determine whether an array is empty. It is very simple to determine whether a one-dimensional array is empty. We can use the empty() or count() function to determine. But for multi-dimensional arrays, the situation is more complicated. This article will introduce how to determine whether a multi-dimensional array is empty.
1. Definition of multidimensional array
In PHP, a multidimensional array is an array containing one or more arrays. For example:
$arr = array( array(1, 2, 3), array(4, 5, 6), array(7, 8, 9) );
2. Method to determine whether a one-dimensional array is empty
1. Use the empty() function to determine whether a variable is empty. When When the variable value is 0, '', null, false, array(), '0', etc., the empty() function will return true. Therefore, for a one-dimensional array, just use the empty() function to determine whether it is empty.
$arr = array('a', 'b', 'c'); if(empty($arr)){ echo '数组为空'; }else{ echo '数组不为空'; }
The count() function can return the number of array elements. If the array is empty, it returns 0. Therefore, we can use the count() function to determine whether a one-dimensional array is empty. For example:
$arr = array('a', 'b', 'c'); if(count($arr)==0){ echo '数组为空'; }else{ echo '数组不为空'; }
The above method is not applicable to multi-dimensional arrays. If you want to judge whether a multi-dimensional array is empty, you can use recursive method to judge.
Recursion is a method of calling itself inside a function, which can traverse and operate multi-layer nested data structures. In PHP, we can use recursion to traverse a multi-dimensional array to determine whether it is empty.
function is_empty_array($arr){ if(!is_array($arr)){//如果不是数组,直接返回false return false; } foreach($arr as $val){ if(is_array($val)){//如果该元素是数组,则递归遍历,直到找到非数组元素 if(!is_empty_array($val)){ return false; } }else{//如果该元素不是数组,则判断其是否为空 if(!empty($val)){ return false; } } } return true; }
$arr = array( array(1, 2, 3), array(), array(array()), array(''), '', array(array()) ); if(is_empty_array($arr)){ echo '数组为空'; }else{ echo '数组不为空'; }
In addition, we can also use the array_filter() function to determine whether the multi-dimensional array is empty. The array_filter() function can be used to remove empty elements from an array and return a new array. If the returned array is empty, the original array is empty.
$arr = array( array(1, 2, 3), array(), array(array()), array(''), '', array(array()) ); $new_arr = array_filter($arr); if(empty($new_arr)){ echo '数组为空'; }else{ echo '数组不为空'; }
1. When traversing multi-dimensional arrays recursively, pay attention to determine whether each array element is an array.
2. When using the array_filter() function to filter an array, pay attention to the type of the return value. If you want to return the key value of the original array, you can use array_filter($arr), otherwise you can use array_values(array_filter($arr)) .
To determine whether a multi-dimensional array is empty, you need to use recursion or the array_filter() function. The recursive method is more flexible and the return value can be customized; while using the array_filter() function is simpler and more convenient, but it requires Pay attention to the type of return value. In actual development, you can choose a suitable method according to your needs.
The above is the detailed content of How to determine whether a multidimensional array is empty in php. For more information, please follow other related articles on the PHP Chinese website!