PHP中explode()和implode()函数讲解和实战用法
一、函数讲解
1、explode()函数 把字符串打散为数组:
2、implode()函数 把数组元素组合为字符串:
(详细讲解见下文 三)
例如:
<?php$str = '107_lab_2017';$array=explode('_', $str);//以下划线为分隔符将字符串打散为数组 print_r($array);echo implode('_', $array);//以下划线为分隔符将数组合并成字符串
?>
执行结果为:
Array | |
( | |
[0] => 107 | |
[1] => lab | |
[2] => 2017 | |
) | |
107_lab_2017 |
二、实战用法
在实际项目中,例如添加好友和关注等用来保存好友和关注的人的id
比如 id为1的用户添加了id为2, 3, 4, 5, 6这5个用户为好友。可以在用户表中加一个friends字段 (为防止因好友过多导致超出字段长度限制 这里直接给friends一个text类型),
id为1用户的好友可以字符串2_3_4_5_6的形式保存在friends字段中
如果需要判断id为1的用户是否添加过id为num(Ps:num代表一个数字,为某个用户的id)的用户为好友 可以从数据库中取出friends字段将其打散为数组判断num是否在数组中。
例如:
<?php$con = mysqli_connect('localhost', 'root', '123456', 'tdbank');if(mysqli_connect_errno($con)){die('Could not connect:'.mysqli_error());}$sql = 'SELECT friends from users WHERE id=1';$result = mysqli_query($con, $sql);$row = mysqli_fetch_assoc($result);$id_array=explode('_', $row['friends']);if(!isset($_GET['id']) || !is_numeric($_GET['id'])){echo '用户不存在';exit;}//判断是否已经添加过id为$_GET['id']的用户为好友if(in_array($_GET['id'], $id_array)){echo '你们已经是好友了';}else{$friends = empty($row['friends'])?$_GET['id']:$row['friends'].'_'.$_GET['id'];$sql = 'UPDATE users set friends = '."'{$friends}'".' WHERE id = 1';echo '<br>'.$sql;$status = mysqli_query($con, $sql);if($status){echo '好友添加成功';}else{echo '好友添加失败';}}
?>
三、详细讲解
1、语法规则: explode(separator, string, limit);
参数 | 描述 |
---|---|
separator | 必需。规定在哪里分割字符串。 |
string | 必需。要分割的字符串。 |
limit |
可选。规定所返回的数组元素的数目。 可能的值:
|
版本细则:
返回值: | 返回字符串的数组 |
PHP 版本: | 4+ |
更新日志: | 在 PHP 4.0.1 中,新增了 limit 参数。在 PHP 5.1.0 中,新增了对负数 limit 的支持。 |
2、语法规则: implode(separator,array)
参数 | 描述 |
---|---|
separator | 可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。 |
array | 必需。要组合为字符串的数组。 |
版本细则:
返回值: | 返回由数组元素组合成的字符串。 |
PHP 版本: | 4+ |
更新日志: | 在 PHP 4.3.0 中,separator 参数变成可选的。 |
PHP中explode()和implode()函数讲解和实战用法相关推荐
- avascript中的this与函数讲解
徐某某 一个半路出家的野生程序员 javascript中的this与函数讲解 前言 javascript中没有块级作用域(es6以前),javascript中作用域分为函数作用域和全局作用域.并且,大 ...
- python transpose函数_numpy中transpose和swapaxes函数讲解
1 transpose() 这个函数如果括号内不带参数,就相当于转置,和.T效果一样,而今天主要来讲解其带参数. 我们看如下一个numpy的数组: arr=np.arange(16).reshape( ...
- python transpose函数_转载:numpy中transpose和swapaxes函数讲解
看<利用python进行数据分析>,有些不大清楚numpy中transpose和swapaxes函数的原理,这篇文章写的比较清楚,转载过来方便个人随时阅读和温习 版权声明:本文为CSDN博 ...
- 13.Django中几大常用模板标签讲解及实战使用 【for循环;if判断;页面跳转;开启关闭自动转义;url携带参数传递;注释】
1.常用模板标签 (1)模板标签重要概念: ①定义:标签在渲染的过程中提供任意的逻辑. ②标签语法: 由 {% 和 %} 来定义的,例如:{%tag%} {%endtag%} (2)常用模板标签讲 ...
- memcpy函数详解 看这一篇就够了-C语言(函数讲解、 使用用法举例、作用)
memcpy()函数用于:复制内存块 函数介绍 函数声明:void * memcpy ( void * destination, const void * source, size_t num ); ...
- oracle中随机整数的函数,Oracle随机函数的用法
简单得说,Oracle 取随机数,大多是通过调用dbms_random包产生,通过dbms_random包产生随机数的方法大致有下面4种: 1.dbms_random.normal 这个函数不带参数, ...
- strerror函数详解 看这一篇就够了-C语言(函数讲解、 使用用法举例、作用)
strerror()函数用于:获取指向错误消息字符串的指针 函数介绍 函数声明: char * strerror ( int errnum ); 头 文 件:#include <string ...
- 【Android App】定位导航GPS中开启手机定位功能讲解及实战(附源码和演示 超详细)
需要源码请点赞关注收藏后评论区留言私信~~~ 一.开启定位功能 手机定位分为卫星定位和网络定位两大类. (1)卫星定位 卫星定位服务由几个全球卫星导航系统提供. 卫星定位的原理是根据多颗卫星与导航芯片 ...
- php 刀客友朋,php explode()函数和implode()函数使用说明
下里说道php中的explode 和implode的用法,芭蕾舞鞋,盼望对于友朋们有所辅助! 说到php,函数便长短常主要的,也是php爱好者,和喜好php进阶的朋友们必须控制的东东,学习php的友朋 ...
- php的正则表达式函数,php中常用的正则表达式函数
php中常用的正则表达式函数 * preg_match() * preg_match_all() * preg_replace() * preg_filter() * preg_grep() * pr ...
最新文章
- 【CV】吴恩达机器学习课程笔记 | 第1-2章
- const,readonly 这些你真的懂吗? 也许会被面试到哦。。。
- 计算机语言中空下划线,2017-7-31 Shell脚本编程基础
- Spring事务嵌套引发的问题--Transaction rolled back because it has been marked as rollback-only...
- 【笔记】css 自定义select 元素的箭头样式
- 碰撞的小球 ccf (模拟)
- 单片机编程文件组织形式(个人编程规范)
- MapReduce 编程实践:统计对象中的某些属性
- vue 限制渲染条数_深入理解Vue 的条件渲染和列表渲染
- java 华氏度_在Java中将华氏度转换为摄氏温度[重复] - java
- 键盘不能使用或者提示没有键盘开不了机的【解决办法】
- qt自带的文档系统软件叫什么名字_翻译 | 为什么QObject子类不可复制?
- python调用vbs脚本_xShell终端调用VBS脚本 使用方法说明
- 51单片机最小系统原理图、PCB及组成原理详解
- java能写游戏脚本吗_java能写游戏脚本吗?
- 带有资源混淆的打补丁过程
- 树莓派自定义游戏,Minecraft硬件编程,建造房屋,我的世界还可以这样玩
- 有哪些主流智能音箱品牌值得买?小米、华为、苹果、百度
- 写了placement new也要写placement delete——条款52
- SD卡插入手机容量变小,U盘低级格式化HA-LLFTOOL