记录一个关于php explode的误解 $a = ''; $b = explode(',', $a); 问,$b是空数组吗? 答案: 不是
举例
<?php $a = ''; $b = explode(',', $a); var_dump($b); if (!empty($b)) { var_dump('not empty'); } else { var_dump('is empty'); }
输出:
array(1) { [0]=> string(0) "" } string(9) "not empty"
解决:
array_filter 可过滤掉数组空值(false, null, ''), 当然也可自定义过滤方式。
<?php $a = ''; $b = explode(',', $a); $b = array_filter($b); var_dump($b); if (!empty($b)) { var_dump('not empty'); } else { var_dump('is empty'); }
输出:
array(0) { } string(8) "is empty"