介绍
explode 函数可以通过一个字符串来分割原始字符串,返回一个存放结果的数组。比如将字符串 1001,1002,1003
通过字符 ,
分割为数组 [1001, 1002, 1003]
。
函数原型
explode(string $delimiter, string $string[, int $limit ]) : array
第一个参数 $delimiter,类型为字符串,表示分隔符号。
第二个参数 $string,类型为字符串,表示原始要分隔的字符串。
第三个参数 $limit,类型为整型,可选。当参数为正数时,表示最多分隔的结果个数。超过此个数后,后续字符串不再分隔;当参数为负数时,表示从分隔结果的末尾忽略此数量的结果。
用法示例
分隔时,传递分隔符和原始字符串。
explode("::", "1001::1002::1003"); // 结果 array(3) { [0]=> string(4) "1001" [1]=> string(4) "1002" [2]=> string(4) "1003" }
分隔时,同时指定最多个数。
explode("::", "1001::1002::1003", 2) // 结果 array(2) { [0]=> string(4) "1001" [1]=> string(10) "1002::1003" }
指定个数为 -1 时,忽略末尾 1 个元素。
explode("::", "1001::1002::1003", -1) // 结果 array(2) { [0]=> string(4) "1001" [1]=> string(4) "1002" }
经验
当原始字符串为空串时,警惕返回结果数组不为空情况,易引发 Bug。
// 分隔字符 $res = explode(",", ""); // 当存在有效分隔结果时(此处存在逻辑问题) if ($res) { var_dump($res); }
打印出的数组内容,表明结果为只有一个空串的数组。
array(1) { [0]=> string(0) "" }
参考资料
https://www.php.net/manual/zh/function.explode.php