PHP 字符串:分割字符串 1 个改进

分割字符串#

开始#

在 PHP 中,可以使用 explode()str_split()preg_split() 函数分割字符串 。

explode()#

本函数为 implode() 的反函数,使用一个字符串分割另一个字符串,返回一个数组。

语法#

explode(string $separator ,string $string [, int $limit])

参数说明#

参数 说明
separator 分割标志
string 需要分割的字符串
limit 可选,表示返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分,支持负数。

例子#

$str = 'one|two|three|four';
print_r(explode('|', $str));
print_r(explode('|', $str, 2));
// 负数的 limit (自 PHP 5.1起支持)
print_r(explode('|', $str, -1));

输出

Array
(
    [0] => one
    [1] => two
    [2] => three
    [3] => four
)
Array
(
    [0] => one
    [1] => two|three|four
)
Array
(
    [0] => one
    [1] => two
    [2] => three
)

str_split()#

str_split() 将字符串分割为一个数组,成功返回一个数组。

语法#

str_split(string $string [, int $length])

参数#

参数 说明
string 需要分割的字符串
length 可选,表示每个分割单位的长度,不可小于 1

例子#

$str = 'one two three';
$arr1 = str_split($str);
$arr2 = str_split($str, 3);
print_r($arr1);
print_r($arr2);

输出

Array
(
    [0] => o
    [1] => n
    [2] => e
    [3] =>  
    [4] => t
    [5] => w
    [6] => o
    [7] =>  
    [8] => t
    [9] => h
    [10] => r
    [11] => e
    [12] => e
)
Array
(
    [0] => one
    [1] =>  tw
    [2] => o t
    [3] => hre
    [4] => e
)

preg_split()#

preg_replace 函数通过一个正则表达式分隔字符串。

语法#

preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )

参数#

参数 说明
pattern 用于搜索的模式,字符串形式。
subject 输入字符串。
limit 可选,如果指定,将限制分隔得到的子串最多只有 limit 个,返回的最后一个 子串将包含所有剩余部分。limit 值为 - 1, 0 或 null 时都代表” 不限制”, 作为 php 的标准,你可以使用 null 跳过对 flags 的设置。
flags 可选,可以是任何下面标记的组合 (以位或运算

例子#

$string="php教程#php入门:教程#字符串:多分隔符#字符串:拆分#数组";
$arr = preg_split("/(#|:)/",$string);
print_r($arr);

输出

Array
(
    [0] => php教程
    [1] => php入门
    [2] => 教程
    [3] => 字符串
    [4] => 多分隔符
    [5] => 字符串
    [6] => 拆分
    [7] => 数组
)
本文为 Wiki 文章,邀您参与纠错、纰漏和优化