字符串的拆分与连接
使用 explode、implode 和 chunk_split 在字符串与数组之间进行转换。
字符串的拆分与连接 是 CoddyKit 上的免费 PHP Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 PHP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 PHP Academy 课程共包含 4 节课。
explode() 与 implode()
两个最重要的字符串与数组转换函数:
explode($delimiter, $string)— 将字符串拆分为数组implode($glue, $array)— 将数组连接为字符串
explode() 基础
根据分隔符拆分字符串:
<?php
$csv = 'Alice,Bob,Carol,Dave';
$names = explode(',', $csv);
print_r($names);
// ['Alice', 'Bob', 'Carol', 'Dave']
// Limit the number of parts
$parts = explode(',', $csv, 2);
print_r($parts);
// ['Alice', 'Bob,Carol,Dave']implode() 与 join()
将字符串数组连接为一个字符串:
<?php
$tags = ['php', 'mysql', 'linux'];
echo implode(', ', $tags); // php, mysql, linux
echo implode(' | ', $tags); // php | mysql | linux
echo implode('', $tags); // phpmysqllinux
// join() is an alias for implode()
echo join('-', $tags); // php-mysql-linux解析 CSV 行
使用 str_getcsv() 解析 CSV 行,包括带引号的字段:
<?php
$line = 'Alice,"New York, NY",30';
$fields = str_getcsv($line);
print_r($fields);
// ['Alice', 'New York, NY', '30']preg_split() — 按模式拆分
根据正则表达式模式拆分字符串,以处理复杂分隔符:
<?php
$text = 'one1two2three3four';
// Split on any digit
$parts = preg_split('/[0-9]/', $text);
print_r($parts);
// ['one', 'two', 'three', 'four']
// Split on whitespace (one or more)
$words = preg_split('/\s+/', ' hello world ');
print_r(array_filter($words)); // ['hello', 'world']str_split()
str_split() 会将字符串拆分为指定大小的分块数组:
<?php
$str = 'Hello';
// Split into individual characters
$chars = str_split($str);
print_r($chars); // ['H','e','l','l','o']
// Split into chunks of 2
$chunks = str_split('ABCDEF', 2);
print_r($chunks); // ['AB','CD','EF']构建查询字符串
使用 http_build_query() 从数组组装 URL 查询字符串:
<?php
$params = [
'search' => 'php tutorial',
'page' => 2,
'sort' => 'date',
];
$query = http_build_query($params);
echo $query;
// search=php+tutorial&page=2&sort=date
echo '/posts?' . $query;解析查询字符串
使用 parse_str() 将 URL 查询字符串解析为数组:
<?php
$qs = 'name=Alice&age=30&city=London';
parse_str($qs, $params);
print_r($params);
// ['name'=>'Alice', 'age'=>'30', 'city'=>'London']
// Or use parse_url + parse_str for full URLs
$url = 'https://example.com/search?q=php&page=1';
$query = parse_url($url, PHP_URL_QUERY);
parse_str($query, $params);
echo $params['q']; // php使用 implode 构建 SQL IN 子句
implode 的一个经典用法——从数组构建 SQL IN 子句:
<?php
$ids = [1, 2, 3, 4, 5];
$placeholders = implode(',', array_fill(0, count($ids), '?'));
$sql = "SELECT * FROM users WHERE id IN ($placeholders)";
echo $sql;
// SELECT * FROM users WHERE id IN (?,?,?,?,?)
// Use prepared statements with these placeholders!字符串转单词数组
将句子拆分为单词,并逐个处理:
<?php
$sentence = 'The quick brown fox';
$words = explode(' ', $sentence);
$reversed = array_reverse($words);
echo implode(' ', $reversed);
// fox brown quick The
$wordCount = count($words);
echo "Word count: $wordCount"; // 4使用数组展开调用 sprintf
将 implode 与 sprintf 结合起来,实现灵活的格式化:
<?php
$cols = ['name', 'email', 'age'];
$values = ['Alice', 'alice@test.com', 30];
$colList = implode(', ', $cols);
$valPlaceholders = implode(', ', array_fill(0, count($values), '?'));
$sql = "INSERT INTO users ($colList) VALUES ($valPlaceholders)";
echo $sql;
// INSERT INTO users (name, email, age) VALUES (?, ?, ?)快速检查
explode(',', 'a,b,c', 2) 会返回什么?
回顾:拆分与连接
关键函数:
explode($delim, $str)— 将字符串转换为数组implode($glue, $arr)— 将数组转换为字符串str_split($str, $len)— 拆分为固定大小的分块preg_split($pattern, $str)— 按正则表达式拆分str_getcsv()— 解析带引号字段的 CSVhttp_build_query()— 将数组转换为 URL 查询字符串
常见问题解答
「字符串的拆分与连接」课时是免费的吗?
是的 — 「字符串的拆分与连接」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 PHP Academy 课程的其余内容,请升级到 CoddyKit PRO。 PHP Academy 课程共包含 4 节课。
「字符串的拆分与连接」这节课中我会学到什么?
使用 explode、implode 和 chunk_split 在字符串与数组之间进行转换。 你通过在浏览器中直接运行的动手代码来练习 PHP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 PHP Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 PHP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「字符串的拆分与连接」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 PHP Academy 课中编写并运行代码吗?
能。每节 PHP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。