PHP判断数组为空
时间:2026-10-19 07:31 作者:emer 分类: 无
PHP判断数组为空
引言
接口返回、查询结果、表单收集都要先判断数组有没有数据,再决定走空分支还是遍历。empty、count、!$arr三种写法结果接近,但适用边界不同,选错会把0或null误判。
empty最常用
$list = [];
if (empty($list)) {
echo '数组为空';
}
empty对空数组、未定义变量、null、0、''都返回true,不会报未定义警告,最适合先判空。
count取元素个数
if (count($arr) === 0) {
echo '没有元素';
}
精确判断元素数量,count为0才是空;注意$arr本身未定义会警告,先isset。
逻辑非写法
if (!$arr) {
echo '空';
}
短但要求$arr一定是已初始化数组,未定义会Notice。
判断键是否为空
不是判断整体,而是某键值:
if (empty($arr['name'])) {
echo 'name为空';
}
避免直接取未定义键。
多维数组判空
if (!empty($arr['items']) && is_array($arr['items'])) {
foreach ($arr['items'] as $item) {}
}
先确认外层键存在且是数组,再遍历内层。
注意事项
- empty(0)和empty('')也为true,数字0场景别用empty判数组元素;
- count第二个参数1可统计多维总元素;
- 严格比较用count($arr)===0;
- 数组里全是空字符串不等于空数组;
- 查询无结果返回[]而非null,按空数组处理;
- 结合isset防止未定义键警告。
总结
整体判空首选empty($arr)防未定义,精确统计用count($arr)===0,短逻辑非要求变量已初始化,判单个键用empty($arr['key']),多维先确认键存在再遍历。注意empty对0和空串也为真,数字场景改用count严格判断。