原来 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
还有第三个参数的,而且非常好用。