PHP explode() 和 implode() 函数详解:字符串与数组互转
- 2026年7月3日
- 144 次
文章目录
PHP 中最常用的两个字符串/数组转换函数就是 explode() 和 implode()。一个把字符串切分成数组,一个把数组拼接成字符串。虽然简单,但实际使用中还是有不少细节和坑。
这篇文章把这两个函数的用法、技巧、常见场景都整理出来。
explode():字符串转数组
explode(separator, string, limit) - 用分隔符把字符串拆成数组。
张三, [1] => 李四, [2] => 王五) ?>
limit 参数的妙用
limit 参数可以限制分割后的数组元素数量,剩余部分全部放到最后一个元素里。这个功能在处理 CSV 数据时特别有用。
<?php
// CSV数据:姓名,年龄,城市,备注1,备注2,备注3
$data = '张三,28,北京,程序员,爱读书,喜欢编程';
// 限制只分割前2次(得到3个元素)
$parts = explode(',', $data, 3);
print_r($parts);
/*
Array
(
[0] => 张三
[1] => 28
[2] => 北京,程序员,爱读书,喜欢编程
)
*/
?>
limit 为负数的情况
<?php
$data = 'a,b,c,d,e';
$parts = explode(',', $data, -1);
print_r($parts);
// Array([0] => a, [1] => b, [2] => c, [3] => d)
// 最后一个元素 e 被去掉了
?>
implode():数组转字符串
<?php
$data = 'a,b,c,d,e';
$parts = explode(',', $data, -1);
print_r($parts);
// Array([0] => a, [1] => b, [2] => c, [3] => d)
// 最后一个元素 e 被去掉了
?>
implode(glue, pieces) - 用连接符把数组元素拼成字符串。
<?php
$tags = ['php', '服务器', 'wordpress', 'seo'];
// 用逗号连接成字符串
$csv = implode(',', $tags);
echo $csv;
// php,服务器,wordpress,seo
// 用于批量插入数据库
$sql = "INSERT INTO tags (name) VALUES ('" . implode("'), ('", $tags) . "')";
echo $sql;
// INSERT INTO tags (name) VALUES ('php'), ('服务器'), ('wordpress'), ('seo')
?>
实战场景
场景1:处理用户提交的标签
用户用逗号分隔输入标签,存入数据库:
<?php
$user_tags = 'php, javascript, python,';
// 分割并过滤空值
$tags = array_filter(explode(',', $user_tags));
// 去空格
$tags = array_map('trim', $tags);
// 去重
$tags = array_unique($tags);
print_r($tags);
?>
场景2:路径解析
<?php
$filepath = '/home/jason/project/src/main.php';
// 拆分路径
$parts = explode('/', $filepath);
$filename = end($parts); // 'main.php'
$directory = implode('/', array_slice($parts, 0, -1));
?>
场景3:生成 SQL IN 查询
<?php
$post_ids = [101, 102, 103, 104, 105];
if (!empty($post_ids)) {
$ids_str = implode(',', array_map('intval', $post_ids));
$sql = "SELECT * FROM posts WHERE id IN ($ids_str)";
}
?>
相关文章
<?php
$filepath = '/home/jason/project/src/main.php';
// 拆分路径
$parts = explode('/', $filepath);
$filename = end($parts); // 'main.php'
$directory = implode('/', array_slice($parts, 0, -1));
?>
<?php
$post_ids = [101, 102, 103, 104, 105];
if (!empty($post_ids)) {
$ids_str = implode(',', array_map('intval', $post_ids));
$sql = "SELECT * FROM posts WHERE id IN ($ids_str)";
}
?>
相关文章
以下是本系列相关文章:
示意图
若非作者标注皆为李涛自留地原创文章,转载或复制请以超链接形式并注明出处。
- PHP文件上传变量$_FILES怎么使用?PHP预定义变量$_FILES有哪些参数 2022-11-18
- Css3中list-style-type的实用属性及属性详细解读 2022-09-26
- PHP替换字符串函数str_replace()用法及实例 2022-11-12
- Python中For循环实现九九乘法表代码解析 2021-09-17
- PHP如何统计数组中元素个数 PHP如何统计多维数组元素 2022-10-23
- PHP正则表达式元字符有哪些?PHP正则表达式的元字符怎么用? 2022-10-29
