原来 PHP 函数 explode 还有第三个参数,竟然这么好用!
explode 是 PHP 一个常见的字符串处理函数,主要用于将字符串按照指定的分隔符拆分成数组。比如下面的代码就是通过英文逗号将字符串转换为数组。
$str = "apple,banana,orange";
$fruits = explode(",", $str);
// 结果:
// Array
// (
// [0] => apple
// [1] => banana
// [2] => orange
// )
我相信大部分人(主要是我)都是这么用这个函数,但是绝大部分都不知道,explode 这个 PHP 函数还有第三个参数:$limit,这是一个可选参数,限制返回数组的最大元素数量。
我标题里面说这么好用,好用在哪里呢?
♀ 我有个字符串,比如 args=type=select&name=gravatar,这个字符串其实是两部分,第一部分是 args 是 key,第二部分(type=select&name=gravatar),它其实是个 query_string,我的目的到时候通过 WordPress 函数 wp_parse_args 函数是将其解析成数组的。
如果直接使用 explode 分割字符串拆成数组的话:
$str = "args=type=select&name=gravatar";
$arr = explode("=", $str);
// 结果:
// Array
// (
// [0] => args
// [1] => type
// [2] => select&name
// [3] => gravatar
// )
这是我又要使用 implode 函数将除了第一个元素之外,其他元素拼成字符串。
有点烦躁。
这是第三个参数就派上用场了,设置为 2,看看结果
$str = "args=type=select&name=gravatar";
$arr = explode("=", $str, 2);
// 结果:
// Array
// (
// [0] => args
// [1] => type=select&name=gravatar
// )
是不是就是我需要的结果!
最后我们在看看第三个参数 $limit 的用法:
- 如果设置了 limit 参数并且是正数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 str 的剩余部分。
- 如果 limit 参数是负数,则返回除了最后的 -limit 个元素外的所有元素。
- 如果 limit 是 0,则会被当做 1。
好了,以后不要傻傻自己使用 implode 函数拼贴回去了,记得 explode 还有第三个参数的,而且非常好用。