php中array_replace,array_splice和str_replace三个函数相互比较
php中有一些功能相似或者是名称相似的函数,比如array_replace,array_splice和str_replace这三个函数,从名称来看前两个操作数组的,后一个操作字符串的。
array_replace函数
<?php
$arr1 = ['a' => 1, 'b' => 2, 'c' => 3];
$arr2 = ['b' => 4, 'c' => 5, 3];
$arr3 = [1, 2, 3];
$arr4 = array_replace($arr1, $arr2, $arr3);
print_r($arr4);
//Array
//(
// [a] => 1
// [b] => 4
// [c] => 5
// [0] => 1
// [1] => 2
// [2] => 3
//)
这个例子中,$arr3与$arr2中具有相同键的元素,于是$arr3把$arr2替代,不同的增加,得到一个临时数组,临时数组['b' => 4, 'c' => 5, 1,2,3]与$arr1具有相同键的元素,于是这个临时数组把$arr1替代,键不同的元素增加到$arr1,最后返回结果数组。
<?php
$arr1 = [1, 2, 3];
$arr2 = [1, 2, 3];
$arr3 = [1, 2, 3];
$arr4 = array_replace($arr1, $arr2, $arr3);
print_r($arr4);
//Array
////(
//// [0] => 1
//// [1] => 2
//// [2] => 3
////)
这个例子中$arr3把$arr2中相同元素替代,然后得到的临时数组把$arr1中具有相同键的元素替代了。
array_splice函数
<?php
$arr1 = [1, 2, 3];
$arr2 = [1, 2, 3]; $arr3 = array_splice($arr1, 1, 2, $arr2);
print_r($arr3);
print_r($arr1);
//Array
//(
// [0] => 2
// [1] => 3
//)
//Array
//(
// [0] => 1
// [1] => 1
// [2] => 2
// [3] => 3
//)
这个函数将$arr1,索引1,索引2,位置的元素切掉,然后将$arr2增加到$arr1剩下的元素后面,这个函数影响了原来的数组$arr1
str_replace函数
<?php
$str1 = 'abcde';
$str2 = 'ddddddddddd'; $str3 = str_replace('c',$str2,$str1);
print_r($str1."\n");
print_r($str3);
//abcde
//abdddddddddddde
在$str1中找到字符c的位置然后用$str2将其替代,不影响原来字符串。
三个函数,array_replace和stt_replace虽然函数名很相似,但功能却很容易混淆。
php中array_replace,array_splice和str_replace三个函数相互比较的更多相关文章
- JavaScript中有对字符串编码的三个函数:escape,encodeURI,encodeURIComponent
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...
- Javascript中对文字编码的三个函数
JavaScript中对文字编码主要有3个函数 escape,encodeURI, encodeURIComponent 相应3个解码函数 unescape, decodeURI, decodeURI ...
- javascript中Math ceil(),floor(),round()三个函数的对比
Math.ceil()执行的是向上舍入 Math.floor()执行向下舍入 Math.round()执行标准舍入 一下是一些补充: ceil():将小数部分一律向整数部分进位. 如: Math.ce ...
- 转MYSQL学习(三) 函数
这一节主要介绍MYSQL里的函数,MYSQL里的函数很多,我这里主要介绍MYSQL里有而SQLSERVER没有的函数 数学函数 1.求余函数MOD(X,Y) MOD(X,Y)返回x被y除后的余数,MO ...
- php中的正则函数主要有三个-正则匹配,正则替换
php中变量的声明? 由于php声明变量的时候, 不支持使用 var关键字, 又不能直接写一个变量名字, 孤零零的放在那里, 所以, 在php中声明变量的方式, 同时也是给变量初始化的形式, 即: & ...
- Java中获取键盘输入值的三种方法
Java中获取键盘输入值的三种方法 Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值 ...
- <实训|第九天>掌握linux中普通的权限控制和三种特殊的权限(sst),做合格的运维工程师
linux中,权限的学习是必不可少的,不论是作为一名运维工程师或者是单一的管理者,学习好linux中的权限控制,你就可以保护好自己的隐私同时规划好你所管理的一切. 权限的学习是很多的,不要认为自己已经 ...
- 使用虚幻引擎中的C++导论(三-反射系统与迭代器)
使用虚幻引擎中的C++导论(三) 第一,这篇是我翻译的虚幻4官网的新手编程教程,原文传送门,有的翻译不太好,但大体意思差不多,请支持我O(∩_∩)O谢谢. 第二,某些细节操作,这篇文章省略了,如果有不 ...
- MVC3中,在control里面三种Html代码输出形式
MVC3中,在control里面三种Html代码输出形式:ViewData["msg"] = "<br /> Title <br />" ...
随机推荐
- Bootstrap select 多选并获取选中的值
代码: <!DOCTYPE html><html> <head> <meta charset="UTF-8"> < ...
- 【caffe Blob】caffe中与Blob相关的代码注释、使用举例
首先,Blob使用的小例子(通过运行结果即可知道相关功能): #include <vector> #include <caffe/blob.hpp> #include < ...
- docker gitlab and gitlab api
https://docs.gitlab.com/ee/api/repositories.html curl --header "PRIVATE-TOKEN: fxhDXPRJAowCouXE ...
- Oracle通过一个字段的值将一条记录拆分为多条记录
前言 之前遇到了一次这样的需求,当时没有记录,这一次又赶上了,简单的记录一下. 本文个人拙见,若有出入,请指出--来自菜的颤抖 场景 表A中存放了集装箱的信息,一个集装箱一条记录,表B中存放了对于集装 ...
- [Linux] scp指令用法
scp 指令用法 # scp usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [ ...
- 三大框架 之 Hibernate查询(一对多、多对多、查询关系)
目录 一对多 表之间关系 表之间关系建表原则 一对多关系配置 建立表 建立ORM 添加配置文件 在hibernate.cfg.xml中的标签里,添加核心配置文件 引入工具类 编写测试类 级联操作 什么 ...
- html5中 input的pattern属性 和 details/summary元素
html5--3.21 课程小结与其他新增元素 一.总结 一句话总结: input的pattern属性可以设置正则验证,比如检测学号的位数和数字区间 details/summary元素配合起来可以做元 ...
- Jar hell问题以及解放方法
当一个类或一个资源文件存在多个jar中,就好存在jar hell问题 可以通过以下代码来诊断问题:
- gpload导入常见问题汇总
gpload导入常见问题汇总 java写文件后使用gpload命令导入greenplum: 问题一: 报错信息:invalid byte sequence for encoding "UTF ...
- 000 基于Spring boot发送邮件
发送邮件的程序,使用QQ的服务器,经过测试,完全可行.可复现 一:准备工作 1.找到账号的授权码 这个是程序需要使用的. 在设置中查找. 2.新建项目的目录 二:完整的程序代码 1.pom.xml & ...