从字符串到数组:10个PHP分割函数
在PHP中,有许多内置的函数可以用于将字符串分割成数组。这些函数可以根据特定的分隔符、正则表达式或指定的长度来分割字符串。下面是10个常用的PHP分割函数:
1. explode():按照指定的分隔符分割字符串,并返回一个数组。例如,可以使用“,”分割一个逗号分隔的字符串。
$str = "apple,banana,orange";
$arr = explode(",", $str);
print_r($arr);
// Output:
// Array
// (
// [0] => apple
// [1] => banana
// [2] => orange
// )
2. preg_split():按照正则表达式分割字符串,并返回一个数组。例如,可以使用正则表达式“/[\s,]+/”来分割一个以空格或逗号分隔的字符串。
$str = "apple banana,orange";
$arr = preg_split("/[\s,]+/", $str);
print_r($arr);
// Output:
// Array
// (
// [0] => apple
// [1] => banana
// [2] => orange
// )
3. str_split():将字符串拆分为每个字符,并返回一个字符数组。例如,可以使用str_split()将单词拆分为字母。
$str = "apple"; $arr = str_split($str); print_r($arr); // Output: // Array // ( // [0] => a // [1] => p // [2] => p // [3] => l // [4] => e // )
4. strtok():按照指定的分隔符将字符串拆分为标记,并返回每个标记。例如,可以使用strtok()将句子拆分为单词。
$str = "I love PHP programming";
$token = strtok($str, " ");
while ($token !== false) {
echo $token . "
";
$token = strtok(" ");
}
// Output:
// I
// love
// PHP
// programming
5. str_word_count():计算字符串中的单词数量,并返回一个包含所有单词的数组。例如,可以使用str_word_count()将句子拆分为单词。
$str = "I love PHP programming"; $arr = str_word_count($str, 1); print_r($arr); // Output: // Array // ( // [0] => I // [1] => love // [2] => PHP // [3] => programming // )
6. explode()和list()结合使用:可以将分割后的数组直接赋值给多个变量。例如,可以将日期字符串拆分为年、月和日。
$date = "2021-01-10";
list($year, $month, $day) = explode("-", $date);
echo "Year: " . $year . "
";
echo "Month: " . $month . "
";
echo "Day: " . $day . "
";
// Output:
// Year: 2021
// Month: 01
// Day: 10
7. str_split()和implode()结合使用:将字符串拆分为字符数组后,可以使用implode()将其重新合并为字符串。例如,可以颠倒一个字符串的字符顺序。
$str = "hello";
$arr = str_split($str);
$arr = array_reverse($arr);
$str = implode("", $arr);
echo $str . "
";
// Output:
// olleh
8. mb_split():与explode()类似,但支持多字节字符。例如,可以使用mb_split()将包含中文的字符串拆分为单个字符。
$str = "你好,世界";
$arr = mb_split("", $str);
print_r($arr);
// Output:
// Array
// (
// [0] => 你
// [1] => 好
// [2] => ,
// [3] => 世
// [4] => 界
// )
9. mb_ereg_split():与preg_split()类似,但支持多字节字符的正则表达式。例如,可以使用mb_ereg_split()按照正则表达式“[\s,]+”将包含中英文的字符串拆分为单词。
$str = "Hello 你好, world 世界";
$arr = mb_ereg_split("[\s,]+", $str);
print_r($arr);
// Output:
// Array
// (
// [0] => Hello
// [1] => 你好
// [2] => world
// [3] => 世界
// )
10. strpbrk():查找字符串中的字符,并返回从 个匹配字符到字符串结尾的子字符串。例如,可以使用strpbrk()将字符串分割为 个非字母字符之前的部分和之后的部分。
$str = "Hello, world!"; $pos = strpbrk($str, " ,"); $part1 = substr($str, 0, strpos($str, $pos)); $part2 = substr($str, strpos($str, $pos)); echo $part1 . " "; echo $part2 . " "; // Output: // Hello // , world!
以上是10个常用的PHP分割函数,它们可以根据不同的需求和字符串特点来选择使用。无论是按照指定的分隔符、正则表达式还是字符串长度进行分割,这些函数都可以帮助你将字符串转换成数组。
