第9章.PHP中的数组及其使用技巧
9-1.数组的定义与分类:数组元素是由键名与值组成的。
1 <?php
2 //数组是键值对的有序集合
3 //数组的键名,必须是整数或字符串,如果不是,将会自动转换为第二种类型
4 //创建一个索引数组
5 //1.默认索引数组:键名是从0开始递增的
6 $arr = ['html', 'css', 'javascrit'];
7 //$arr = ['html', 5=>'css', 'javascrit'];
8 //$arr = ['html', 3.8=>'css', 'javascrit'];
9 //$arr = ['html', false=>'css', 'javascrit'];
10 //$arr = ['html', true=>'css', 'javascrit'];
11 echo '<pre>';
12 print_r($arr); //输出数组
13 echo '</pre>';
14 //输出的是
15 Array
16 (
17 [0] => html
18 [1] => css
19 [2] => javascrit
20 )
21
22 //2.关联数组:键名是自定义的字符串
23 $arr1 = ['name',=>'peter', 'age'=>21, 'sex'=>'male'];
24 echo '<pre>';
25 print_r($arr1); //输出关联数组
26 echo '</pre>';
27 //输出的是
28 Array
29 (
30 [name] => peter
31 [age] => 21
32 [sex] => male
33 )
34
35 //关联数组跟索引数组两者区别在于键名不同,索引键名都是整数,关联数组是自定义的字符串
36
37 数组按键名类型分为:
38 1.索引数组:(一)键名默认是从零顺序递增的整数,(二)可自定义键名,如果重复,后面覆盖前面。
39 2.关联数组:(一)键名是字符串,用引号包装,(二)如果重复,后面覆盖前面。
9-17.sort()和rsort():忽略原键名,按元素值从小到大或从大到小排序。
1 <?php
2 //sort()和rsort():忽略原键名,按元素值从小到大或从大到小排序。
3 $arr1 = [1,2,3,4,5];
4 $arr2 = ['html','css','javascript','php','ljy'];
5 echo '排序前<br>';
6 echo '<pre>';
7 print_r($arr1);
8 print_r($arr2);
9 echo'</pre>';
10 echo'<hr>';
11 //先对这二个数组进行正向排序
12 rsort($arr1);//值从大到小
13 //sort($arr1);//值从小到大
14 rsort($arr2);
15 //sort($arr2);
16 echo '排序后<br>';
17 echo '<pre>';
18 print_r($arr1);
19 print_r($arr2);
20 echo'</pre>';
9-18.ksort()和krsort():按键名正向或反向排序。
1 <?php
2 //ksort()和krsort():忽略原键名,按元素值从小到大或从大到小排序。
3 $arr1 = [12=>20,25=>22,38=>55,32=>15];
4 $arr2 = ['a'=>'html','b'=>'css','c'=>'javascript','d'=>'php'];
5 echo '排序前<br>';
6 echo '<pre>';
7 print_r($arr1);
8 print_r($arr2);
9 echo'</pre>';
10 echo'<hr>';
11
12 krsort($arr1);//反向排序
13 //ksort($arr1);//正向排序
14 krsort($arr2);
15 //ksprt($arr2);
16 echo '排序后<br>';
17 echo '<pre>';
18 print_r($arr1);
19 print_r($arr2);
20 echo'</pre>';
9-19.asort()和arsort():保留原值键名正向或反向。
1 <?php
2 //asort():保留原数组的键值对应关系,按值从小到大排序。
3 //arsort():保留原数组的键值对应关系,按值从大到小排序。
4 $arr1 = [12=>20,25=>22,38=>55,32=>15];
5 $arr2 = ['a'=>'html','b'=>'css','c'=>'javascript','d'=>'php'];
6 echo '排序前<br>';
7 echo '<pre>';
8 print_r($arr1);
9 print_r($arr2);
10 echo'</pre>';
11 echo'<hr>';
12
13 arsort($arr1);
14 //asort($arr1);
15 arsort($arr2);
16 //asort($arr2);
17 echo '排序后<br>';
18 echo '<pre>';
19 print_r($arr1);
20 print_r($arr2);
21 echo'</pre>';