php数组常用函数总结
- 数组的创建
$arr1 = [
"姓名" => "张三",
"籍贯" => "上海",
"年龄" => 12,
"职位" => "php开发工程师",
"工作经历" => "阿里巴巴",
"月薪" => "20K"
];
$arr2 = array("姓名" => "张三",
"籍贯" => "上海",
"年龄" => 12,
"职位" => "php开发工程师",
"工作经历" => "阿里巴巴",
"月薪" => "20K");
2.数组添加
// 在数组的头部添加元素,当数组是关联数组时,添加之后的元素的键为数字,当数组为索引数组时,添加之后数组的键为重新排列
array_unshift($array,$var,[$var......] );
// 在数组的尾部添加元素,当数组时关联数组时,添加之后的元素的键为数字,当数组为索引数组时,添加之后数组的键为重新排列
array_push(array, $var,[$var.......]);
// 当向一个数组中同时执行上面的两种插入操作时,并且原数组都为关联数组时,向尾部添加的元素的键会按照插入的键的顺序。
3.数组删除
// 删除数组的头部,返回删除的元素;当原数组为索引数组的时候,此时数组的下标依次向前移动一位,当数组为关联数组的时候,数组下标不变。如为空数组或者不是数组则返回null
array_shift($arr);
// 删除数组的尾部,返回删除的原素;当原数组为索引数组的时候,此时数组的下标依次向前移动一位,当数组为关联数组的时候,数组的下标不变。如为空数组或者不是数组则返回null
array_pop($arr);
4.数组的遍历(不介绍for循环)
foreach ($arr1 as $k=>$v){
echo $k."=>".$v."<br/>";
}
while (list($k, $v) = each($arr1)){
echo $k."=>".$v."<br/>";
}
两者的区别:
同:都是对数组的遍历
不同:foreach只是对原数组的复制,而不会改变原数组,因此这种循环是更安全可靠的;
list()echo()是对原数组的操作,是会改变原数组的;
从执行的效率来看,foreache是低于后者的;
5.数组和字符串之间的转换
//将字符串按照特定的符号转换为数组
explode($type, $array);
// 将数组按照特定的分隔符转换为字符串
implode($type, $array);
6.数组的排序
// 对数组进行升序排序,会改变原有的键值顺序
sort();
// 对数组进行降序排序
rsort();
针对sort()和rsort()两个函数的第二个可选参数
参数名 参数解释
SORT_REGULAR 默认,标志对数组进行默认排序
SORT_NUMERIC 标志数组元素将被作为数字来比较
SORT_STRING 标志数组元素将被作为字符串来比较
SORT_LOCALE_STRING 根据当前的区域设置来把单元当作字符串比较
// 对数组的值升序排序,保留原有的键值顺序
asort();
// 对数组的值降序排序
arsort();
// 对数组的键升序排序
ksort();
// 对数组的键降序排序
krsort();
// 对数组中进行随机排序,并将所有的键初始化,以整型0开始;当数组是关联数组的时候,使用此函数同样的会把数组的键初始化从0开始
shuffle();
// 多位数组的排序
array_multisort();
7.数组判断
// 判断某个元素是否在数组中,$needle传入的元素,$array检索的数组,$strict为true时,会判断$needle的类型与$array中的类型是否一致,反之;同时此函数可代替数组的遍历操作。
// 存在着返回true,不存在者会反悔false。
in_array($neele, $array, $strict);
// 判断某个键值或者索引是否在数组中,存在者返回true,不存在者会反悔false。
array_key_exists($key, $array);
8.数组的合并与拆分
// 当数组的键重复时并且键为字符串时,后面的值会覆盖前面的值;反之,则会附加到后面。
array_merge($array1, $array2, $array3......);
// 将第一个数组的值作为新数组的键,将第二个数组的值作为新数组的值。只接受两个参数。
array_combine($array1, $array2);
// 数组的拆分,第一个参数为才分的数组,第二个参数为分割的大小,第三个参数为boolean类型,当为true时,表示数组的键名不变,当为false时,表示数组元素的键名会丢失,默认为false。
array_chunk($array, $size, $pres_keys);
9.返回数组的交集
// 返回所有数组中都存的值,键名保持原先的不变,当键名不同时,返回第一个数组中的键。
array_intersect($array1, $array2, $array3......);
10.将数组转换为标量变量
// 将数组的键作为变量名,数组的值作为变量的值
extract($array,[extract_type], [prefix]);
***文章结尾是extrac_type的信息对照表
11.初始化数组
// 生成一个随机数组,$low最小值,$hig最大值,$step偏移量
range($low, $hig, $step);
// 填充数组
array_fill();
12.查找数组
// 在数组中查找值,当值存在时,则返回该值对应的键,当不存在时,则返回false;$val为查找的值,$array为查找的数组,$strict判断$val在$array中的值的类型是否完全相等。
array_search($val, $array, $strict);
// 获取数组的键,当$val为空时,则返回数组中全部的键值,当$val不为空时,返回的时该值对应的键。
array_keys($array,[$val]);
// 获取数组的值
array_values($array);

php数组常用函数总结的更多相关文章
- 【PHP】最详细PHP从入门到精通(三)——PHP中的数组常用函数汇总
PHP从入门到精通 之PHP中的数组常用函数详解 数组作为PHP中最常用的结构之一,PHP强大的数组函数功能,给数组的相关操作带来了极大的便利.今天给大家介绍的PHP中数组函数,是PHP数组中重要的 ...
- PHP常用函数(一):数组常用函数
1.list() list() 和 array() 一样,不是一个函数,而是一个语言结构,作用是为一组变量赋值. PHP手册中的介绍 使用详情 <?php //假设现在想为$a $b $c三个 ...
- JS数组常用函数以及查找数组中是否有重复元素的三种常用方法
阅读目录: DS01:常用的查找数组中是否有重复元素的三种方法 DS02:常用的JS函数集锦 DS01.常用的查找数组中是否有重复元素的三种方法 1. var ary = new Array(&qu ...
- PHP数组常用函数
[官方]PHP Array 函数 一.数组操作的基本函数 数组的键名和值 array_values($arr); 获得数组的值 array_keys($arr); 获得数组的键名 array_fl ...
- PHP数组常用函数分类整理
一.数组操作的基本函数数组的键名和值array_values($arr); 获得数组的值array_keys($arr); 获得数组的键名array_flip($arr); 数组中的值与键名互换 ...
- PHP常用函数、数组方法
常用函数:rand(); 生成随机数rand(0,50); 范围随机数时间:time(); 取当前时间戳date("Y-m-d H:i:s"); Y:年 m:月份 d:天 H:当前 ...
- php 数组的常用函数
在php教程中数组是种强大的数据类型,他可以做的事情很多,可以存储不同的数据类型在一个数组中,下面我们列出了数组常用的操作,排序,键名对数组排序等做法. /* 数组的常用函数 * * 数组的排序函 ...
- PHP数组的常用函数
在PHP中数组是种强大的数据类型,他可以做的事情很多,可以存储不同的数据类型在一个数组中,下面我们列出了数组常用的操作,排序,键名对数组排序等做法. /* 数组的常用函数 * * 数组的排序函数 ...
- PHP基础语法: echo,var_dump, 常用函数:随机数:拆分字符串:explode()、rand()、日期时间:time()、字符串转化为时间戳:strtotime()可变参数的函数:PHP里数组长度表示方法:count($attr[指数组]);字符串长度:strlen($a)
PHP语言原理:先把代码显示在源代码中,再通过浏览器解析在网页上 a. 1.substr; //用于输出字符串中,需要的某一部分 <?PHP $a="learn php"; ...
随机推荐
- php *-devel
源码编译安装个php,缺少好多-devel的库. why devel? devel包至少包括头文件和链接库.如果你的要安装的源码依赖某个库,那肯定需要这两样东西. 让apache支持php 在编译ph ...
- C# linq to sql
参考文章地址:http://www.cnblogs.com/yubaolee/p/BestLinqQuery.html 以下是我自己的总结: 表结构: 本文全部代码基于:UserInfo与Clas ...
- 深入浅出 关于SQL Server中的死锁问题
深入浅出 关于SQL Server中的死锁问题 博客2013-02-12 13:44 分享到:我要吐槽 死锁的本质是一种僵持状态,是多个主体对于资源的争用而导致的.理解死锁首先需要对死锁所涉及的相 ...
- Windows快捷操作技巧
隐藏技能 在当前路径打开命令行 shift + 右键点击文件夹内的空白处,你会看到右键弹出菜单多了个选项 "在此处打开命令窗口",省去了打开命令行再cd到当前路径的麻烦. 快捷键 ...
- Android SDK Manager 如何下载?
修改 "C:\Windows\System32\driver\etc\hosts" 文件,添加以下两行 203.208.40.111 dl-ssl.google.com 203.2 ...
- 【图文详解】Zookeeper集群搭建(CentOs6.3)
Zookeeper简介: Zookeeper是一个分布式协调服务,就是为用户的分布式应用程序提供协调服务的. A.zookeeper是为别的分布式程序服务的 B.Zookeeper本身就是一个分布式程 ...
- java 解压缩Zip文件 ziputil
package com.lanyuan.assembly.util; import java.io.BufferedOutputStream;import java.io.File;import ja ...
- 【JeeSite】用户管理
组织机构使用ztree插件,加载数据时使用数据权限过滤(只能访问登录用户的单位及其下属单位), 点击部门加载相应用户. <!-- 数据范围过滤 --> BaseService.data ...
- 商城管理系统项目(前台+后台+管理员+用户+html+jsp)
管理员后台 用户前台 如果下载项目报错,加包即可(包已经打包放在下载地址) 数据库:mysql drop database shoppingmall; create database shopping ...
- 【luogu P3371 单源最短路】 模板 vector+SPFA
stl真是好,,偷懒少写邻接表,, 两个STL应用使代码简短了很多.然而还是那句话,天上不会掉馅饼,程序的效率还是有所下降的.然而,效率不是全部,人们宁可牺牲三倍效率用Java而不用C语言就是最好的例 ...