一、 数组
一. 使用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 "
";
//输出非规则的数组
$a=array(2=>10,3=>40,6=>80,4=>30,"name"=>"张三");
//获取数组中的所有值,并以索引式数组返回
$list = array_values($a);
//使用for循环遍历
for($i=0;$i
echo $list[$i]." ";
}
2. 使用foreach遍历数组
格式:foreach(被遍历的数组 as [键=>]值){
....
}
示例://关联式数组的输出
$stu = array("name"=>"zhangsan","age"=>20,"sex"=>"man");
foreach($stu as $k=>$v){
echo "{$k}=>{$v}
";
}
四、超全局数组:
---------------------------------------------------
$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 -- 计算数组的差集