1、定义数组
1.1、使用数组字面量
$arr=['张三',1,'李四',[1,'王五']];
var_dump($arr);
1.2、使用array()函数
$arr=array('张三',1,'李四');
var_dump($arr);
1.3、使用关联数组
$arr=['name'=>'张三','age'=>'18','sex'=>'男'];
var_dump($arr);
1.4、其他方式定义数组
$arr[0]=1;
$arr[1]="张三";
$arr[2]="lisi";
var_dump($arr);
2、遍历数组
2.1、利用for循环遍历数组
$arr=array('张三',1,'李四');
for($i=0;$i<count($arr);$i++){
echo $arr[$i];
}
2.2、利用foreach循环遍历数组
$arr=['name'=>'张三','age'=>'18','sex'=>'男'];
foreach ($arr as $k=>$v){
var_dump($k);
var_dump($v);
}
3、预定义数组
3.1、$_SERVER
$_SERVER是一个包含诸如头信息、路径和脚本位置的数组。数组的实体由web服务器创建,并不能保证所有的服务器都能产生所有的信息,服务器可能忽略了一些信息,或者产生了一些其他的新的信息。和其他的超全局数组一样,这是一个自动的全局变量,在所有的脚本中都有效,在函数或对象的方法中不需要使用global关键字访问它。
var_dump($_SERVER);
3.2、$_ENV
$_ENV数组中的内容是在PHP解析器运行时,从PHP所在服务器中的环境变量转变为PHP全局变量的。它们中许多都是由PHP所运行的系统决定的,完整的列表是不可能的,需要查看PHP所在服务器的系统文档以确定其特定的环境变量。
3.3、$_GET
$_GET数组也是超全局变量数组,是通过URL GET方法传递的变量组成的数组
3.4、$_POST
$_POST数组是通过HTTP POST方法传递的变量组成的数组。$_POST和$_GET数组之一都可以保存表单提交的变量,使用哪一个数组取决于提交表单时在表单form标记中的method属性使用的方法是post还是get。但是使用$_POST数组只能访问以post方法提交的表单数据。
3.5、$_REQUEST
包含$_GET、$_POST和$_COOKIE中全部的内容
3.6、$_COOKIE
$_COOKIE超全局数组是经由HTTP Cookies方法提交至脚本的变量。通常这些Cookies是由以前执行的PHP脚本通过setCookies()函数设置到客户端浏览器中的。
3.7、$GLOBALS
$GLOBALS是由所有已定义的全局变量组成的数组,变量名就是该数组的索引
4、数组函数
4.1、array_values()
返回数组中的所有值
$arr=array('name'=>"张三","sex"=>"男");
var_dump(array_values($arr));
4.2、array_keys()
返回数组中的所有键名
$arr=array('name'=>"张三","sex"=>"男");
var_dump(array_keys($arr));
4.3、is_array()
检查一个变量是否为数组
$arr=array('name'=>"张三","sex"=>"男");
var_dump(is_array($arr));
4.4、in_array()
检查一个值是否存在于数组中
$arr=array('name'=>"张三","sex"=>"男");
var_dump(in_array("张三",$arr));
4.5、array_unique()
从数组中移除重复的值
$arr=["张三","李四","李四"];
var_dump(array_unique($arr));
4.6、array_rand()
随机取出数组索引
$arr=array('name'=>"张三","sex"=>"男");
var_dump(array_rand($arr,1));
4.7、sort()
对数组进行升序排序
$arr=['10',"3","5","9"];
var_dump(sort($arr));
var_dump($arr);
4.8、rsort()
对数组进行降序排序
$arr=['10',"3","5","9"];
rsort($arr);
var_dump($arr);
4.9、asort()
根据值对数组进行升序排序,并保持键值关联
$arr=array('aname'=>"张三","sex"=>"男",'tel'=>'18899998888');
asort($arr);
var_dump($arr);
4.10、ksort()
根据关联数组的键,对数组进行升序排列
$arr=array('aname'=>"张三","sex"=>"男",'tel'=>'18899998888');
ksort($arr);
var_dump($arr);
4.11、array_column()
取出多维数组的某一列数据
$arr = [
['id' => "5", 'name' => 'D', 'age' => 18],
['id' => "1", 'name' => 'A', 'age' => 19],
['id' => "2", 'name' => 'B', 'age' => 20],
['id' => "3", 'name' => 'C', 'age' => 18],
];
var_dump(array_column($arr,'name'));
4.12、array_multisort()
对多个或者多维数组进行排序
$arr = [
['id' => "5", 'name' => 'D', 'age' => 18],
['id' => "1", 'name' => 'A', 'age' => 19],
['id' => "2", 'name' => 'B', 'age' => 20],
['id' => "3", 'name' => 'C', 'age' => 18],
];
function array_sort($data, $field, $sort){
$fields = array_column($data, $field);
array_multisort($fields, $sort, $data);
return $data;
}
var_dump(array_sort($arr,'age',SORT_ASC));
4.13、array_reverse()
反转数组
$arr=["张三","李四"];
var_dump(array_reverse($arr));