PHP连接字符串---implode、array_map

案例:从数据表中删除指定的记录

implode
implode连接数组元素,最终生成字符串。
string implode ( string $glue , array $pieces )
$glue 连接符
$pieces 数组

$ids = array('1001','1002','1003');
$str = implode(',',$ids);
echo $str;

输出结果:1001,1002,1003’

$ids = array('1001','1002','1003');
$str = implode(',',$ids);
$sql = "delete from student where no in ($str)";
echo $sql;

输出结果:delete from student where no in (1001,1002,1003)

$ids = array('a','b','c','d');
$str = implode(',',$ids);
$sql = "delete from student where no in ($str)";
echo $sql;

输出结果:delete from student where no in (a,b,c,d);

注:如果in里边是数字,在sql中不会出现错误,但是现在是字符串,我们知道在sql中字符串必须用单引号或双引号引出来,也就是a应该有单引号或双引号。我们用 s t r = i m p l o d e ( ′ , ′ , str = implode(',', str=implode(,,ids)把abcd都引了出来,它就形成了一个整个的字符串,失去了原有的特性。
我们为了解决这个问题使用了array_map
array_map
array_map — 将回调函数作用到给定数组的单元上

function quot($str){
	return sprintf("'%s'",$str);
}

$ids = array('a','b','c','d');
//加工数组元素,按照自己的想法处理每一个元素的值,构成合法的元素
$ids = array_map('quot', $ids);
print_r($ids);

输出结果:Array ( [0] => ‘a’ [1] => ‘b’ [2] => ‘c’ [3] => ‘d’ )

注:abcd上均多了单引号。如果 sprintf("’%s’",$str);中的"’%s’"缺了一副单引号,结果将abcd将不会返回单引号

我们可以使用函数quot
原理:
函数把传给了$str(自己定义的一个形参),经过array_map中的quot函数加了一个单引号,以此类推,得到了一个新数组,而且都多了一个单引号。sql指令将正常运行。
经验:
implode可以将元素连接成一个字符串
array_map加工数组元素,按照自己的想法处理每一个元素的值,构成合法的元素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值