目录
一、定义数组
1.索引数组
索引数组是指键的数据类型为整型的数组。默认情况下,索引以0开始,并依次递加,也可以自己指定索引数组的键。
$arr=[12,36,78,96];
var_dump($arr);
2.关联数组
关联数组是指键的数据类型为字符串的数组。
$arr1=['id'=>10,'name'=>'Tom','gender'=>'男'];
var_dump($arr1);
3.array()语言结构
- 用array()语言定义索引数组。数组元素使用“键=>值”。
$sports=array(2=>'basketball', 1=>'football',1,2,3);
var_dump($sports);
2. 用array()语言定义关联数组。
$info=array('id'=>10,'name'=>'Tom','gender'=>'男');
var_dump($info);
$info=array('id'=>10,'name'=>'Tom','gender'=>'男','apple',1);
var_dump($info);
注意:不指定键时,键默认从0开始,如果前面有索引数组,键会接着最大的键索引递加。
- 定义二维数组
$data=array(
0=>array('name'=>'Tom','gender'=>'男'),
1=>array('name'=>'Lucy','gender'=>'女')
);
var_dump($data);
4.赋值方式
赋值方式可以为数组添加元素。不同于赋值。
$arr1[]=123;
$arr1[]=333;
$arr1[]=444;
var_dump($arr1);
$arr[]=123;
$arr1[]='hello';
$arr2[4]='PHP';
$arr3['name']='Tom';
var_dump($arr);
var_dump($arr1);
var_dump($arr2);
var_dump($arr3);
5.短数组定义方法
$weather= ['wind','fine'];
$info=['a'=>1,'b'=>'2'];
var_dump($weather);
var_dump($info);
二、遍历数组
1.foreach语句遍历
- foreach($ as $v){ }
$info = ['id'=> 1, 'name'=> 'Jacie','age'=> 18];
foreach($info as $v) {
var_dump($v);
}
2. 1. foreach($ as $k => $v){ }
$info = ['id'=> 1, 'name'=> 'Jacie','age'=> 18];
foreach($info as $k=>$v) {
var_dump($k);
var_dump($v);
}
三、预定义数组
在 PHP 中,有一些特殊的预定义数组,它们提供了有用的信息和功能。以下是一些常用的预定义数组:
- $_GET:包含通过 GET 方法传递给当前脚本的变量和值的数组。
- $_POST:包含通过 POST 方法传递给当前脚本的变量和值的数组。
- $_REQUEST:包含通过 GET、POST 和 Cookie 方法传递给当前脚本的变量和值的数组。
- $_SERVER:包含有关服务器和执行环境的信息的数组,如请求的页面、请求方法、服务器地址等。
- $_SESSION:包含当前会话中存储的变量和值的数组。需要在使用之前调用 session_start() 函数。
- $_COOKIE:包含通过 Cookie 传递给当前脚本的变量和值的数组。
- $_FILES:包含通过文件上传机制上传的文件的信息的数组。
- $_ENV:包含当前环境变量的数组。
- $GLOBALS: 包含了全局作用域中所有变量的关联数组。它的键是变量的名称,值是变量的内容。
四、数组函数
1.元素操作函数
- array_keys():返回数组中所有的键名。
- array_values():返回数组中所有的值。
- array_pop():删除并返回数组的最后一个元素。
- array_shift():删除并返回数组的第一个元素。
- array_unshift():在数组的开头插入一个或多个元素。
- array_push():将一个或多个元素添加到数组的末尾。
- array_unique():移除数组中重复的值,返回一个新数组。
- array_slice():从数组中取出一段元素并返回为新的数组。
- array_splice():从数组中移除并替换一段元素。
$arr=['a','b','b'];
var_dump(array_keys($arr));
var_dump(array_values($arr));
var_dump(array_unique($arr));
2.数组排序函数
- sort():对数组进行降序排序。
$arr=['10',"3","5","9"];
var_dump(sort($arr));
print_r($arr);
- rsort():对数组进行升序排序。
$arr=['10',"3","5","9"];
var_dump(sort($arr));
print_r($arr);
- ksort():对数组按键名进行升序排序。
$arr=['10'=>'a',"3"=>'c',"5"=>'f',"9"=>'d'];
var_dump(ksort($arr));
print_r($arr);
var_dump($arr);
- krsort():对数组按键名进行降序排序。
$arr=['10'=>'a',"3"=>'c',"5"=>'f',"9"=>'d'];
var_dump(krsort($arr));
print_r($arr);
var_dump($arr);
- asort():对数组进行升序排序,保持索引关联。
$arr=['10'=>'a',"3"=>'c',"5"=>'f',"9"=>'d'];
var_dump(asort($arr));
print_r($arr);
var_dump($arr);
- arsort():对数组进行降序排序,保持索引关联。
$arr=['10'=>'a',"3"=>'c',"5"=>'f',"9"=>'d'];
var_dump(arsort($arr));
print_r($arr);
var_dump($arr);
- array_reverse(): 返回一个顺序相反的数组。
$arr=['10'=>'a',"3"=>'c',"5"=>'f',"9"=>'d'];
var_dump(array_reverse($arr));
print_r($arr);
var_dump($arr);
- array_multisort():对多个数组或多维数组进行排序。“排序时保留原有的键名关联”。
排序顺序标志:
SORT_ASC - 按照上升顺序排序(默认)
SORT_DESC - 按照下降顺序排序
排序类型标志:
SORT_REGULAR - 将项目按照通常方法比较(默认)
SORT_NUMERIC - 将项目按照数值比较
SORT_STRING - 将项目按照字符串比较
$a =array(100,80,50,10,0);
$b = array("c","f","q","e","z");
array_multisort($a,$b);
var_dump($a);
var_dump($b);
array_multisort($arr1, $arr2, SORT_DESC, SORT_STRING, $arr3);
3.数组检索函数
- in_array(): 检查数组中是否存在某个值。
$data = ['a'=>1,'b'=>'2'];
var_dump(in_array('2',$data)); //true
2. array_search(): 在数组中搜索指定的值,成功则返回相应的键,否则返回false.
$data = ['a'=>1,'b'=>'2'];
var_dump(array_search('2',$data));
4.其它数组函数
- 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,'id'));