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 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!