1.数组的键值操作函数:

$arr = array("小明" => 98, "小红" => 76, "小黑" => 66,);

array_values(input);//输出所有值value

array_keys(input);//输出所有键key

in_array(needle, haystack);//查找数组里有没有needle这个值

array_key_exists(key, search);//查找数组里有没有key这个键

array_flip(trans);//键值对互换

array_reverse(array);//把数组反转,从最后一个排到第一个

2.统计数组的元素和唯一性:

count(var);//返回数组中元素的数目。

array_count_values(input);//用于统计数组中所有值出现的次数。

array_unique(array);//删除数组中的重复值。

array_filter(input);//用回调函数过滤数组中的元素。

array_map(callback, arr1);//把数组中的每个值发送到用户自定义函数,返回新的值。例子是$v*$v。

3.数组的排序函数:

sort(array);//索引数组正序,只有数字,返回true或false,改变了原数组

rsort(array);//数组逆序

asort(array);//关联数组正序,按照值排序,键和值都有

arsort(array);//关联数组逆序

ksort(array);//关联数组正序,按照键排序,键和值都有

krsort(array);//关联数组逆序

array_multisort(arr);//对多个数组排序,可指定排列顺序

数组截取:

array_slice(array, offset);//从数组中取出部分值,offset起始数字,取几个值,原数组不变,返回取值的新数组

array_splice(input, offset);//从数组中移除部分值,原数组改变,第4个参数可以是个数组,加入原数组

数组合并:
array_merge(array1);//把两个数组合并成一个大数组,如果键名重复,后面的覆盖前面的

array_combine(keys, values);//把两个数组合并,第一个数组为键,第二个数组为值

 数组分割与连接:

explode(delimiter, string);//把字符串拆分成数组,根据分隔符拆分,不改变原字符串

implode(glue, pieces);//把数组组合成字符串,加入分隔符

join();//implide()的别称

带有数据结构的数组函数:

array_pop(array);//从数组末尾删除一个值(出栈),并返回这个值,原数组删除了这个值

array_push(array, var);//向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。该函数等于多次调用 $array[] = $value。

array_shift(array);//删除数组中第一个元素,并返回被删除元素的值。

array_unshift(array, var);//向数组插入新元素。新数组的值将被插入到数组的开头。返回数组中元素的个数。

其他函数:

array_rand(input);//从数组中随机选出一个或多个元素,并返回。第二个参数用来确定要选出几个元素。但只能是前面的数字小,后面的数字大

shuffle(array);//把数组元素打乱重排,关联数组的键名清除!返回true或false

array_sum(array);//返回数组中所有值的和。

array_product(array);//计算并返回数组的乘积。

range(low, high);//创建一个数组,包含从 low 到 high (包含 low 和 high)之间的整数或字符。如果 high 比 low 小,则返回反序的数组。第三个参数是步长

练习:做一个字母数字混合的4位数随机验证码

PHP学习笔记(1)数组函数的更多相关文章

  1. PHP学习笔记之数组篇

    摘要:其实PHP中的数组和JavaScript中的数组很相似,就是一系列键值对的集合.... 转载请注明来源:PHP学习笔记之数组篇   一.如何定义数组:在PHP中创建数组主要有两种方式,下面就让我 ...

  2. Python学习笔记之常用函数及说明

    Python学习笔记之常用函数及说明 俗话说"好记性不如烂笔头",老祖宗们几千年总结出来的东西还是有些道理的,所以,常用的东西也要记下来,不记不知道,一记吓一跳,乖乖,函数咋这么多 ...

  3. IOS学习笔记07---C语言函数-printf函数

    IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...

  4. IOS学习笔记06---C语言函数

    IOS学习笔记06---C语言函数 --------------------------------------------  qq交流群:创梦技术交流群:251572072              ...

  5. JavaScript学习笔记之数组(二)

    JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...

  6. Typescript 学习笔记三:函数

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  7. ES6学习笔记<三> 生成器函数与yield

    为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...

  8. OpenCV 学习笔记03 findContours函数

    opencv-python   4.0.1 1 函数释义 词义:发现轮廓! 从二进制图像中查找轮廓(Finds contours in a binary image):轮廓是形状分析和物体检测和识别的 ...

  9. canvas学习笔记、小函数整理

    http://bbs.csdn.net/topics/391493648 canvas实例分享 2016-3-16 http://bbs.csdn.net/topics/390582151 html5 ...

  10. Go语言学习笔记七: 函数

    Go语言学习笔记七: 函数 Go语言有函数还有方法,神奇不.这有点像python了. 函数定义 func function_name( [parameter list] ) [return_types ...

随机推荐

  1. iOS:对GCD中 同步、异步、并行、串行的见解

    1.GCD-同步执行多线程时          GCD中不管向什么类型的队列加同步任务,实际上都会加到当前线程中(一般为主线程). 2.GCD-异步执行多线程时          GCD中不管向什么类 ...

  2. screen space shadowmap unity

    unity用到了screen space shadow map 1.camera 在light pos 生成depth1 2.screen space depth2 3.根据depth1 depth2 ...

  3. Office WPS如何让页与页之间不相互影响

    在一个页面结束的位置点击插入-分页符,完了之后测试按回车下一页的内容有没有跟着往下跑,如果还是跟着往下跑的,再插入一次分页符,一般插入多次之后就不会跟着跑了,但是插的太多会有空白页面   测试按回车, ...

  4. PHP数组问题

    转换为数组 对于任意 integer , float , string , boolean 和 resource 类型,如果将一个值转换为数组,将得到一个仅有一个元素的数组,其下标为 0,该元素即为此 ...

  5. iOS12适配指南

    1.重复文件报错 build Phases-> 删除多余的info.plist 2.library not found for -lstdc++ 苹果在XCode10和iOS12中移除了libs ...

  6. Android Studio修改项目名和包名

    为了提高开发效率,有时候需要使用现有的一些开源项目,记录一下自己修改项目名和包名的方法. 1.首先,修改包名(清单文件里找), ①展开所有包 ②选中想要修改的包,shift+F6(也可右键Refact ...

  7. 算法笔记_103:蓝桥杯练习 算法提高 金明的预算方案(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些 ...

  8. Android 开发之使用Eclipse Debug调试详解(转)

    转自 http://blog.csdn.net/xys289187120/article/details/6636331 1.在程序中添加一个断点 如果所示:在Eclipse中添加了一个程序断点 在E ...

  9. arm-linux内核start_kernel之前启动分析(1)-接过bootloader的衣钵

    前段时间移植uboot细致研究过uboot启动过程,近期耐不住寂寞.想对kernel下手. Uboot启动过程分析博文连接例如以下: http://blog.csdn.net/skyflying201 ...

  10. jboss 的debug启动4法

    http://xo-tobacoo.iteye.com/blog/684946方式一: 使用myeclipse,全自动化,不再赘述 方式二: eclipse下使用server工具,部署后使用debug ...