数组操作:遍历,排序,数组函数等
2017-12-26 15:30
218 查看
一、 数组
一. 使用array函数来赋值。
$a = array(10,20,30,40); //使用array函数定义一个数组(未指定下标)
$b = array("aa","bb","cc");//使用array函数定义一个数组(未指定下标)
$c = array(1=>10,2=>20,6=>80); //使用array函数,定义一个指定下标的数组
$stu = array("name"=>"张三","age"=>20); //使用array函数,定义一个指定关联下标的数组
$stu = array("name"=>"张三","age"=>20,3=>"qq","pp"); //这是pp的下标是4
$p = array("name"=>"张三","age"=>20,"aa","bb"); //这时数组aa和bb的下标为0,1
二. 多维数组:当一个数组中的元素单元还是一个数组时,称为多维数组。(几层就是几维)
如:echo $a[10]; //一维数组
echo $a[1][2]; //二维数组
$a = array(10,20,40,50); //一维数组
$b = array( array(10,20),array(30,40)...); //二维数组
如 二维数组的赋值:
直接赋值:$a[][]=10;
三、数组的遍历(迭代)输出(4种)
-------------------------------------------
1.使用循环结构:for/while/do...while
使用到一个函数:count()--获取数组的长度(元素的个数)
示例:
$a=array(10,20,30,40,50,60);
$ll=count($a);
for($i=0;$i<$ll;$i++){
echo $a[$i]." ";
}
注意:使用for循环只适合输出索引式数组,并且数组下标是从0开始连续的整数。
但是可以使用array_values()函数来弥补数组下标不足的地方。
示例:
echo "<br/>";
//输出非规则的数组
$a=array(2=>10,3=>40,6=>80,4=>30,"name"=>"张三");
//获取数组中的所有值,并以索引式数组返回
$list = array_values($a);
//使用for循环遍历
for($i=0;$i<count($list);$i++){
echo $list[$i]." ";
}
2. 使用foreach遍历数组
格式:foreach(被遍历的数组 as [键=>]值){
....
}
示例://关联式数组的输出
$stu = array("name"=>"zhangsan","age"=>20,"sex"=>"man");
foreach($stu as $k=>$v){
echo "{$k}=>{$v}<br/>";
}
四、超全局数组:
---------------------------------------------------
$GLOBALS 包含以下所有信息
*$_SERVER 服务器和执行环境信息
*$_GET 通过 URL 参数传递给当前脚本的变量的数组。
*$_POST 通过 HTTP POST 方法传递给当前脚本的变量的数组。
*$_FILES 保存文件上传信息(在文件处理章节中细讲)
(cookie和session在会话跟踪章节中细讲)
*$_COOKIE 通过 HTTP Cookies 方式传递给当前脚本的变量的数组(用于储存论坛、文库、博客等登陆信息)
*$_SESSION 当前脚本可用 SESSION 变量的数组。(用于网站购物车等的信息存储)
*$_REQUEST 包含get、post和cookie
$_ENV 存储的是系统环境变量信息
*$_SERVER["HTTP_REFERER"]--上一页面的url地址
$_SERVER["SERVER_NAME"]--服务器的主机名
*$_SERVER["SERVER_ADDR"]--服务器端的IP地址
$_SERVER["SERVER_PORT"]--服务器端的端口
*$_SERVER["REMOTE_ADDR"]--客户端的IP
$_SERVER["DOCUMENT_ROOT"]--服务器的web目录路径
*$_SERVER["REQUEST_URI"];//--URL地址
echo $_GET["name"];
echo $_REQUEST["name"]; //获取信息比上面get的会慢一些
form表单的get提交方式:url地址可见,相对不安全,长度受限,可以做为标签连接使用。
form表单的post提交方式:url地址不可见,相对安全,长度不受限。
五、 数组的相关函数
------------------------------
1. 数组的键和值的操作函数
*array_values — 返回数组中所有的值
array_keys — 返回数组中所有的键名
array_flip — 交换数组中的键和值
*in_array — 检查数组中是否存在某个值
array_reverse — 返回一个单元顺序相反的数组
*is_array() --判断是否是数组
2. 数组的统计相关函数
*count -- 计算数组中的单元数目或对象中的属性个数
array_count_values -- 统计数组中所有的值出现的次数
array_unique -- 移除数组中重复的值
3. 带回调函数的
array_filter -- 用回调函数过滤数组中的单元
array_walk -- 对数组中的每个成员应用用户函数
array_map -- 将回调函数作用到给定数组的单元上
4. 数组的排序
*sort -- 对数组排序(升序)
rsort -- 对数组逆向排序(降序)
asort -- 对数组进行排序并保持索引关系(关联数组排序)
arsort -- 对数组进行逆向排序并保持索引关系
*usort -- 使用用户自定义的比较函数对数组中的值进行排序
uasort -- 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
ksort -- 对数组按照键名排序
krsort -- 对数组按照键名逆向排序
uksort -- 使用用户自定义的比较函数对数组中的键名进行排序
*natsort -- 用“自然排序”算法对数组排序
natcasesort -- 用“自然排序”算法对数组进行不区分大小写字母的排序
array_multisort -- 对多个数组或多维数组进行排序(了解)
array_slice -- 从数组中取出一段
array_splice -- 把数组中的一部分去掉并用其它值取代
array_combine -- 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
*array_merge -- 合并一个或多个数组
array_intersect -- 计算数组的交集
array_diff -- 计算数组的差集
一. 使用array函数来赋值。
$a = array(10,20,30,40); //使用array函数定义一个数组(未指定下标)
$b = array("aa","bb","cc");//使用array函数定义一个数组(未指定下标)
$c = array(1=>10,2=>20,6=>80); //使用array函数,定义一个指定下标的数组
$stu = array("name"=>"张三","age"=>20); //使用array函数,定义一个指定关联下标的数组
$stu = array("name"=>"张三","age"=>20,3=>"qq","pp"); //这是pp的下标是4
$p = array("name"=>"张三","age"=>20,"aa","bb"); //这时数组aa和bb的下标为0,1
二. 多维数组:当一个数组中的元素单元还是一个数组时,称为多维数组。(几层就是几维)
如:echo $a[10]; //一维数组
echo $a[1][2]; //二维数组
$a = array(10,20,40,50); //一维数组
$b = array( array(10,20),array(30,40)...); //二维数组
如 二维数组的赋值:
直接赋值:$a[][]=10;
三、数组的遍历(迭代)输出(4种)
-------------------------------------------
1.使用循环结构:for/while/do...while
使用到一个函数:count()--获取数组的长度(元素的个数)
示例:
$a=array(10,20,30,40,50,60);
$ll=count($a);
for($i=0;$i<$ll;$i++){
echo $a[$i]." ";
}
注意:使用for循环只适合输出索引式数组,并且数组下标是从0开始连续的整数。
但是可以使用array_values()函数来弥补数组下标不足的地方。
示例:
echo "<br/>";
//输出非规则的数组
$a=array(2=>10,3=>40,6=>80,4=>30,"name"=>"张三");
//获取数组中的所有值,并以索引式数组返回
$list = array_values($a);
//使用for循环遍历
for($i=0;$i<count($list);$i++){
echo $list[$i]." ";
}
2. 使用foreach遍历数组
格式:foreach(被遍历的数组 as [键=>]值){
....
}
示例://关联式数组的输出
$stu = array("name"=>"zhangsan","age"=>20,"sex"=>"man");
foreach($stu as $k=>$v){
echo "{$k}=>{$v}<br/>";
}
四、超全局数组:
---------------------------------------------------
$GLOBALS 包含以下所有信息
*$_SERVER 服务器和执行环境信息
*$_GET 通过 URL 参数传递给当前脚本的变量的数组。
*$_POST 通过 HTTP POST 方法传递给当前脚本的变量的数组。
*$_FILES 保存文件上传信息(在文件处理章节中细讲)
(cookie和session在会话跟踪章节中细讲)
*$_COOKIE 通过 HTTP Cookies 方式传递给当前脚本的变量的数组(用于储存论坛、文库、博客等登陆信息)
*$_SESSION 当前脚本可用 SESSION 变量的数组。(用于网站购物车等的信息存储)
*$_REQUEST 包含get、post和cookie
$_ENV 存储的是系统环境变量信息
*$_SERVER["HTTP_REFERER"]--上一页面的url地址
$_SERVER["SERVER_NAME"]--服务器的主机名
*$_SERVER["SERVER_ADDR"]--服务器端的IP地址
$_SERVER["SERVER_PORT"]--服务器端的端口
*$_SERVER["REMOTE_ADDR"]--客户端的IP
$_SERVER["DOCUMENT_ROOT"]--服务器的web目录路径
*$_SERVER["REQUEST_URI"];//--URL地址
echo $_GET["name"];
echo $_REQUEST["name"]; //获取信息比上面get的会慢一些
form表单的get提交方式:url地址可见,相对不安全,长度受限,可以做为标签连接使用。
form表单的post提交方式:url地址不可见,相对安全,长度不受限。
五、 数组的相关函数
------------------------------
1. 数组的键和值的操作函数
*array_values — 返回数组中所有的值
array_keys — 返回数组中所有的键名
array_flip — 交换数组中的键和值
*in_array — 检查数组中是否存在某个值
array_reverse — 返回一个单元顺序相反的数组
*is_array() --判断是否是数组
2. 数组的统计相关函数
*count -- 计算数组中的单元数目或对象中的属性个数
array_count_values -- 统计数组中所有的值出现的次数
array_unique -- 移除数组中重复的值
3. 带回调函数的
array_filter -- 用回调函数过滤数组中的单元
array_walk -- 对数组中的每个成员应用用户函数
array_map -- 将回调函数作用到给定数组的单元上
4. 数组的排序
*sort -- 对数组排序(升序)
rsort -- 对数组逆向排序(降序)
asort -- 对数组进行排序并保持索引关系(关联数组排序)
arsort -- 对数组进行逆向排序并保持索引关系
*usort -- 使用用户自定义的比较函数对数组中的值进行排序
uasort -- 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
ksort -- 对数组按照键名排序
krsort -- 对数组按照键名逆向排序
uksort -- 使用用户自定义的比较函数对数组中的键名进行排序
*natsort -- 用“自然排序”算法对数组排序
natcasesort -- 用“自然排序”算法对数组进行不区分大小写字母的排序
array_multisort -- 对多个数组或多维数组进行排序(了解)
array_slice -- 从数组中取出一段
array_splice -- 把数组中的一部分去掉并用其它值取代
array_combine -- 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
*array_merge -- 合并一个或多个数组
array_intersect -- 计算数组的交集
array_diff -- 计算数组的差集
相关文章推荐
- Java第四章【流程控制与数组、数组的操作【遍历、排序、查找】】
- 实现Vector容器的增加、删除、排序(算法函数排序)、遍历、复制操作
- NSArray数组的常用操作(遍历、排序、倒序、比较、与字符串的比较)
- 数组的添加、删除、排序、与字符串之间的转换、截取、查找、遍历操作总结!!!
- 关于动态存储分配函数的调用,在已经过排序的数组中查找及删除内容的操作,余数的分析,删除字符数组中的空格,对链表的逆置,在源字符串中查找子字符串的个数,函数指针以及函数的调用,循环赋值带来的问题以及插入
- 整理了一份PHP开发中数组操作大全,包含有数组操作的基本函数、数组的分段和填充、数组与栈、数组与列队、回调函数、排序、计算、其他的数组函数等。
- [java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组
- Java基础——函数+数组概述+数组操作(获取最值_排序_折半查找+进制转换)
- javascript 常见数组操作( 1、数组整体元素修改 2、 数组筛选 3、jquery 元素转数组 4、获取两个数组中相同部分或者不同部分 5、数组去重并倒序排序 6、数组排序 7、数组截取slice 8、数组插入、删除splice(需明确位置) 9、数组遍历 10、jQuery根据元素值删除数组元素的方)
- 对数组的遍历及排序操作
- 1.数组--最大值 2.数组--选择排序与图解 3.数组--冒泡排序图解 4.数组--1.自带排序2.遍历功能方便 5.数组-常见操作-排序位置置换代码提取
- PHP数组常用操作与常用排序函数
- 《黑马程序员》java笔记->【02】数组的常见操作:遍历,排序,查找
- NO4.java学习笔记(数组、数组的操作【遍历、排序、查找】)
- js 数组的 创建 操作 遍历 排序
- (13)数组操作:遍历、输出最大值、冒泡排序、选择排序,java已有的排序方法、折半查找
- php 数组操作(增加,删除,查询,排序)等函数说明第1/2页
- php 数组操作(增加,删除,查询,排序)等函数说明第1/2页
- Python实遍历二维数组题目一:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
- c++ 模板学习笔记:函数模板实现数组通用排序和遍历打印(权哥)