1.1关于数组操作的函数

1.1.1range(start,end)

创建一个数组,值从start开始,一直到end结束

如果range里面的参数是数字,那么他直接按照数字大小的顺序排序,如果里面的参数是一个字符,那么他将按照ascii编码的顺序排序。

1.1.2array_rand()

随机取出一个数组的下标

array_rand存在第二个参数,默认情况下是1,代表获取一个数组元素的下标,他的数据类型等同于下标的数据类型,但是如果一次性随机获取多个元素的下标,他返回的是一个数组。

虽然他是随机获取数组元素的下标,但是获取后的结果一定是小的下标放在前面而大的下标放在后面。

1.1.3shuffle()

作用:打乱一个数组的排序。

使用shuffle打乱一个数组,不需要重新复制,它会自动将原来的数组的元素顺序打乱。

1.1.4is_array()

作用:判断一个变量是否是数组数据类型。

语法:is_array(变量名),如果是数组,返回一个true,如果不是数组,返回一个false。

1.1.5array_search()

作用:根据一个数组元素的值,去寻找他相对于的下标

语法:array_search(value,$arr[,boolean]) ,返回的是元素值对应的下标

array_search去遍历数组查找下标,是从左往右进行寻找,当找到第一个符合要求的元素时,直接返回下标,函数结束。

array_search去遍历数组,区分大小写

array_search默认情况下,是不区分数据类型的,如果想让其区分数据类型,将array_search的第三个参数修改为true即可。

1.2关于数组元素操作的函数

1.2.1array_keys()

作用:获取数组中的所有下标,返回的结果还是一个数组

语法:array_keys($arr)

1.2.2array_values()

作用:获取数组中的所有值,返回的结果还是一个数组

语法:array_values($arr)

1.2.3array_combine()

作用:将两个数组合并,第一个数组里元素的值被当成新数组元素的下标,第二个数组里元素的值被当成新数组元素的值。

语法:array_combine($arr1,$arr2)

array_combine去合并两个数组,两个数组元素的数量必须是一样的。

1.2.4in_array()

作用:查找某一个数组元素的值是否存在。

语法:in_array(value,$arr[,boolean])。返回的是一个布尔值,如果存在,返回的是一个true,如果不存在,返回的结果是false。

默认情况下不区分数据类型,如果想区分,将第三个参数修改为true即可。

in_array区分大小写

1.2.5array_key_exists()

作用:查找数组元素中是否存在某个下标

语法:array_key_exists($key,$arr)

区分大小写

array_key_exists只有两个参数,他不区分数据类型

1.2.6isset()

判断一个变量是否被定义。

思考:isset()和array_key_exists()判断数组元素有什么区别?

答案:如果一个数组元素的值为null的时候,isset()判断的结果是false而array_key_exists()判断的结果是true。

1.2.7implode()

作用:将一个数组拼接成一个字符串。

语法:implode(string,$arr)

如果省略了拼接符,那么,他默认按照空字符串进行拼接

1.2.8explode()

作用:将一个字符串拆分成一个数组。

语法:explode(string,$str[,num])

explode如果有第三个参数,则代表将字符串拆分成几份,最后一份包含字符传后面的所有部分。

explode第三个参数如果是一个负数,那么则代表将最后的几项丢弃

1.3数组的交并差

1.3.1array_merge()

作用:将几个数组合并,然后生成一个新的数组。

如果合并数组的下标是数字,那么他会无视下标,直接生成一个新的数组,然后下标从0开始重新排序

如果合并数组的下标是字符串,那么他会保留原来的下标,合并后的数组,如果下标出现了冲突,那么后来的值会将原来的值替换。

1.3.2array_diff()

代码的差集,计算某个数组中其他数组没有的元素。

语法:array_diff($arr1,$arr2[,$arr3..$arrn])

计算的是第一个参数数组中其他数组没有的部分

获得元素中的下标是第一个参数数组元素的下标。

1.3.3array_intersect()

计算数组的交集

语法:array_intersect($arr1,$arr2[,$arr3..$arrn]);

计算的是所有数组中共同拥有的部分,下标仍然是以第一个参数数组的下标为准。

1.4遍历数组的函数

1.4.1array_map()回调函数

语法:array_map(函数名,$arr)

作用:分别去取出数组里面的每一个元素的值,然后去执行函数。

除了调用php内置的函数以外,我们也可以去手写函数,然后通过我们自定义函数的函数名,也可以实现一个调用函数的功能

除了书写函数名的模式以外,我们也可以自己去书写一个匿名函数,效果是一样的。

我们也可以一次性去传递多个数组,那么第一次会将每个数组第一个元素的值取出,第二次会将每个数组第二个元素的值取出,以此类推

如果array_map中调用的函数为空,那么他将依次取出数组中的元素,然后将其合并成一个新的数组,最终的结果是一个二维数组。

1.4.2array_walk()

作用:依次取出数组元素的下标和值。

语法:array_walk($arr,’函数名’)

array_map可以一次性传递多个数组,但是array_walk只能传递一个数组。

array_map在工作中比较常见,array_walk出现的可能比较小,因为array_walk的功能完全可以被foreach所取代。

1.5栈和队列

栈:先进后出,后进先出

队列:先进先出,后进后出

1.5.1array_push()

作用:往数组的最后插入元素

语法:array_push($arr,$value[,$value2..$valuen])

array_push也可以一次性添加多个元素。

1.5.2array_pop()

作用:删除数组里最后一个元素

语法:array_pop($arr)

array_pop移除元素以后,返回的结果就是移除元素的值

1.5.3array_shift()

作用:删除数组里面第一个元素

语法:array_shift($arr)

移出完第一个元素,后面的元素也会顺势往前位移一位,返回的结果也是移除元素的值。

1.5.4array_unshift()

作用:往数组的最前面插入元素

语法:array_unshift($arr,$value[,$value2..$value3])

思考:array_shift()和直接使用unset()去删除数组里第一个元素,有什么区别?

答案:unset()删除的是数组元素的值,但是保留下标,但是array_shift()是将元素的下标和值统一移出。

1.6数组的排序

1.6.1sort()

作用:将数组元素的值按照从小到大的顺序排序。

语法:sort($arr)

使用sort去排序数组,数组的下标全部舍去,新生成的数组下标按照从0开始,依次递增。

1.6.2rsort()

作用:将一个数组从大到小进行排序。

语法:rsort($arr)

1.6.3asort()

作用:将一个数组从小到大进行排序,但是会保留原来的下标。

语法:asort($arr)

1.6.4arsort()

作用:将一个数组从大到小进行排序,但是也会保留下标。

语法:arsort($arr)

1.6.5ksort()

作用:将一个数组的下标,从小到大进行排序

语法:ksort($arr)

1.6.6krsort()

作用:将一个数组的下标,从大到小进行排序

语法:krsort($arr)

1.6.7natsort()

作用:自然排序会将字符串当成是一个整体,然后进行从小到大的排序。

语法:natsort()

1.6.8usort()

作用:自定义一个排序。

语法:usort($arr,fn($num1,$num2){})

如果return的是一个大于0的整数,那么,$num1将往后排序

如果return的是一个小于0的整数,那么,$num1将往前排序

如果return的是一个等于0的整数,那么,他保持不变

有些时候,对于一些二维数组,我们用普通排序的方式难以实现,这个时候,我们可以去使用自定义排序。

1.7字符串操作

1.7.1[]

语法:[num]

作用:获取第num+1个字节

1.7.2strlen()

作用:获取字符串占用多少字节

语法:strlen($str)

中文下的符号也是占三个字节

1.7.3trim()

作用:去除字符串左右两边的空格

语法:trim($str,[char]),返回的结果就是去除空格的字符串。

可选参数,过滤字符也可由charlist参数指定。一般要列出所有希望过滤的字符,也可以使用“..” 列出一个字符范围。

1.7.4ltrim()

作用:去除字符串左边的空格

语法:ltrim($str,[char])

1.7.5rtrim()

作用:去除字符串右边的空格

语法:rtrim($str,[char])

1.7.6strpos()

作用:寻找某个字符首次出现的位置。注意判断是用全等于false才为失败。因为下标0会判断等于false。

语法:strpos($str,char[,num])

如果出现多个符合要求的字符,他只招第一个符合要求字符的位置。

strpos查找字符串是从左往右的顺序进行寻找,第三个参数代表从哪一个位置开始去寻找,区分大小写。

1.7.7strrpos()

作用:从右往左进行寻找,找到第一个符合要求的字符结束

语法:strrpos($str,char[,num])

第三个参数代表搜索结束的位置,如果找不到,返回一个false

1.7.8str_repeat()

作用:将一个字符串重复多少次

语法:str_repeat($str,num)

1.7.9chr()

作用:将一个十进制数字转换为对应的ASCII编码

1.7.10ord()

作用:将一个ascii编码转换为对应的数字

1.7.11substr()

作用:截取字符串

语法:substr($str,startNum[,截取的长度])

如果省略第三个参数,则直接截取到最后一位

参数的作用

1.7.12strchr()

作用:从某个字符开始截取

语法:strchr($str,char[,boolean])

第三个参数代表strchr截取字符是字符串右边部分还是左边部分,默认是false,代表右边部分,并且保留截取的字符,如果修改为true,则代表截取左边部分,不保留截取的字符。strstr就是strchr的另一个称呼。区分大小写。

1.7.13stristr()

作用:从某个字符开始截取字符串,但是他不区分大小写。

语法:stristr($str,char[,boolean])

无论是strstr还是stristr,截取字符串都是从左往右进行查找,找到第一个符合要求的字符就开始截取。

1.7.14strrchr()

作用:从某个字符开始截取字符串,但是他是从右往左进行寻找。

语法:strrchr($str,char)

1.7.15str_replace()

作用:替换字符串中的字节

语法:str_replace(替换前字符,替换后的字符,$str)

如果想一次性替换多个字节,将需要替换的字节放在一个数组中

如果想将多个字符全部替换成一个字符,前面用数组,后面不需要使用数组。

替换的顺序是先替换第一个,第一个替换完毕以后,才会去继续替换第二个元素

1.7.16str_split()

作用:将一个字符串拆分成数组。

语法:str_split($arr,num)

str_split()拆分字符串,是以限制字符长度去拆分字符串。

1.7.17str_pad()

作用:给一个字符串填充一个具体的内容。

语法:str_pad($str,length,char)

str_pad存在第四个参数,他的值是一个常量。

STR_PAD_LEFT:向左添加填充物

STR_PAD_RIGHT:向右添加填充物(默认项)

STR_PAD_BOTH:向两边添加填充物

1.7.18strtolower()

作用:将字符串转换为全小写

1.7.19strtoupper()

作用:将字符串转换为全大写

1.7.20nl2br()

作用:将\n转换为

1.7.21htmlspecialchars()

作用:将特殊字符解析成普通字符

1.7.22urlencode()

给编码加密。

1.7.23urldecode()

给编码解密

1.8多字符处理函数

在使用多字符处理函数之前,必须要先打开相应的配置,首先打开php.ini,然后搜索php_mbstring,将注释去除,重启apache即可

1.8.1mb_strlen()

返回字符串一共拥有的字符数。

语法:mb_strlen($str,编码格式)

1.8.2mb_internal_encoding()

如果不加任何参数,直接输出,代表当前的编码格式。

如果加上参数,代表修改其字符集编码。

1.8.3mb_strpos()

获取某个字符出现的位置。

1.8.4mb_substr()

截取字符串

1.8.5iconv()

作用:设置一个字符串的字符集编码

语法:iconv(设置前的字符集编码,设置后的字符集编码,需要修改的字符串)修改完的结果会生成一个新的字符串。

PHP数组和字符串函数的更多相关文章

  1. 实验七 c字符数组和字符串函数

    7.1 #include<stdio.h>#include<string.h> int main(){ char a[40]; int i; gets(a); //输入字符串进 ...

  2. javascript函数一共可分为五类: ·常规函数 ·数组函数 ·日期函数 ·数学函数 ·字符串函数

    javascript函数一共可分为五类:    ·常规函数    ·数组函数    ·日期函数    ·数学函数    ·字符串函数    1.常规函数    javascript常规函数包括以下9个 ...

  3. php随机数、时间、字符串函数,正则,数组函数

    <?php//1.随机数和时间//echo rand(); //随机数生成器//echo rand(0,10); //生成某个范围内的随机数 //echo time(); //取当前时间戳//e ...

  4. PHP基础语法: echo,var_dump, 常用函数:随机数:拆分字符串:explode()、rand()、日期时间:time()、字符串转化为时间戳:strtotime()可变参数的函数:PHP里数组长度表示方法:count($attr[指数组]);字符串长度:strlen($a)

    PHP语言原理:先把代码显示在源代码中,再通过浏览器解析在网页上 a. 1.substr;  //用于输出字符串中,需要的某一部分 <?PHP $a="learn php"; ...

  5. PHP函数积累总结(Math函数、字符串函数、数组函数)

    Math函数:10个较常用标红.abs — 绝对值acos — 反余弦acosh — 反双曲余弦asin — 反正弦asinh — 反双曲正弦atan2 — 两个参数的反正切atan — 反正切ata ...

  6. php的数组汉字符串常用函数

    <?php// function add($a,$b,$func){// if(!is_callable($func)){// return false;// }// $m=$a+$b+$fun ...

  7. js数组,数字函数,字符串函数,表单验证,hashMap,堆栈,日期函数,call函数

    1.javascript的数组API Js代码 收藏代码 //定义数组 var pageIds = new Array(); pageIds.push('A'); 数组长度 pageIds.lengt ...

  8. js课程 3-10 js中字符串函数数组函数和其它语言中对应函数的区别和联系是什么

    js课程 3-10  js中字符串函数数组函数和其它语言中对应函数的区别和联系是什么 一.总结 一句话总结:js中是对象点方法的形式,这些方法都是对象的方法,而在php.java中却不是这样. 1.j ...

  9. java——字符串常量池、字符串函数以及static关键字的使用、数组的一些操作函数、math函数

    字符串常量池: 字符串比较函数:  字符串常用方法:  字符串截取函数: 字符串截取函数:  static关键字使用: 要调用类中的static类型的变量的时候,可以用"类名.变量名&quo ...

随机推荐

  1. Java与网页JSP文件编码的小总结

    感谢大佬: https://www.cnblogs.com/yangguoe/p/8467672.html(编码发展史) https://blog.csdn.net/seabiscuityj/arti ...

  2. Windows 7 Ubuntu 修改系统启动加载项

    由于现在硬盘越来越大,越来越廉价.所以越来越多的很为了方便工作学习,在一台物理机上安装多个操作系统. 下面我们就来介绍安装多个操作系统后,每次开机后,到底默认引导哪个系统,由谁说的算? 由引导项说的算 ...

  3. 直播媒体流red5

    第一步下载 安装setup-Red5-1.0.1-java6.exe 安装教程网上有很多 显示如下页面说明安装成功 第二步 下载oflaDemo的 解压放在 第三步  打开 然后 ok了 注意:下面的 ...

  4. LeetCode随缘刷题之赎金信

    欢迎评论区讨论. package leetcode.day_12_04; /** * 为了不在赎金信中暴露字迹,从杂志上搜索各个需要的字母,组成单词来表达意思. * * 给你一个赎金信 (ransom ...

  5. 帆软报表(finereport)JS实现点击参数面板按钮显示或隐藏数据

    当报表中列出数据太多时,想通过显示按钮隐藏明细数据只显示统计数据.如下图示例,那么该如何实现呢?本文以FineReport为例,来讲述JS如何实现点击参数面板按钮显示或隐藏数据. 打开报表 在参数面板 ...

  6. Spring 初始化流程

    开始 在SpringIOC中,前面讲述了如何配置BeanDefinition和如何注册BeanDefinition,但是这些知识容器初始化的一部分,在AbstractApplicationContex ...

  7. operator 之旅(一)

    环境准备 依赖版本 MAC M1 kubernetes: 1.18.3 go: 1.17.6 kubebuilder:3.1.0 知识必备 Kubernetes的Group.Version.Resou ...

  8. spring的事务是如何回滚的、事务传播?

    实际上也是问的这个问题  spring的事务管理是如何实现的?总: spring的事务是由aop来实现的,首先要生成具体的代理对象,然后按照aop的整套流程来执行具体的操作逻辑,正常情况下要通过通知来 ...

  9. k8s核心资源之:标签(label)

    简介 label是标签的意思,一对 key/value ,被关联到对象上,k8s中的资源对象大都可以打上标签,如Node.Pod.Service 等 一个资源可以绑定任意多个label,k8s 通过  ...

  10. Jenkins+allure集成报告构建

    1.点击新建item,新建一个job 对这个job进行配置 General模块,点击高级 勾选自定义的工作空间,填写项目目录 构建触发器和构建环境先不填写 构建模块,填写python main.py, ...