智");
4 //输出长度
5 echo '一维数组$arr1的长度是:' . count($arr1) . "<br/>";
6
7 //二维数组
8 $arr2=array(
9 '$arr3'=>array("a","b","c","d","e"),
10 '$arr4'=>array("1","2","3","4","5")
11 );
12 //输出长度
13
14 //所有元素
15 echo '$arr2的所有元素的个数:' . count($arr2,1) . "<br/>";//计算二维数组中所有元素的个数,12个
16 //一维元素
17 echo '$arr2的一维元素的个数:' . count($arr2) . "<br/>";//计算二维数组中所有一维元素的个数,2个
18 ?>
3、array_unique()函数
array_unique()函数的作用是移出数组中的重复元素。
array array_unique(array $array);
在上述声明中,array_unique()函数接受一个数组,去除重复元素后返回一个新的数组。在使用该函数时,首先将数组元素的值作为字符串排序,然后对每个值只保留第一个键名,忽略后面所有的键名。
1 <?php
2 $input=array("a"=>"green","red","b"=>"green","blue","red");
3 echo "<pre>";
4 print_r($input);
5 //调用函数
6 $result=array_unique($input);
7 print_r($result);
8 echo "</pre>";
9
10 /*运行结果
11 Array
12 (
13 [a] => green
14 [0] => red
15 [b] => green
16 [1] => blue
17 [2] => red
18 )
19 Array
20 (
21 [a] => green
22 [0] => red
23 [1] => blue
24 )
25 */
26 ?>
4.3.2 键值对的相关函数
1、array_search()
array_search()函数用于获取数组中元素对应的键名。
array array_search(mixed $needle,array $haystack [,bool $strict]);
在上述声明中,$needle表示在数组中要查找的值,$haystack表示被查询的数组。$strict参数是可选的,当值为true时,就会在$haystack数组中检查$needle的类型。
1 <?php
2 $array=array(0=>"blue",1=>"red",2=>"green",3=>"red");
3 echo "green对应的键为:";
4 echo array_search("green",$array);
5 //结果:green对应的键为:2
6 ?>
当被查询的元素在数组中出现两次以上时,那么array_search()函数返回第一个匹配的键名。
2、array_keys()函数
array_keys()函数同样用于获取数组中元素对应的键名。不同的是,array_keys()函数可以返回所有匹配的键名。
array array_keys(array $input [,mixed $search_value [,bool $strict]]);
上述声明中,$input表示要被查询的数组;$search_value参数是可选参数,当给$search_value赋值时,函数返回该值的键名,否则返回$input数组的所有的键名。$strict参数用来进行全等比较,需要传入一个布尔值,默认为false,如果为true则根据类型返回带有指定值的键名。
1 <?php
2 //定义数组arr1
3 $arr1=array(0=>"ttg","name"=>"dandy");
4 print_r(array_keys($arr1)); //返回数组中元素的所有键名
5 //Array ( [0] => 0 [1] => name )
6 print_r(array_keys($arr1,"dandy")); //获取数组元素为"dandy"对应的键名
7 // Array ( [0] => name )
8
9 //定义数组arr2
10 $arr2=array(11,12,32,"11");
11 print_r(array_keys($arr2,11)); //获取元素11(不依赖类型)
12 //Array ( [0] => 0 [1] => 3 )
13 print_r(array_keys($arr2,"11",true)); //获取字符串类型的元素的"11"
14 // Array ( [0] => 3 )
15 ?>
array_keys()函数可以根据传入的参数,返回不同的键名。当传入的参数是一个数组时,则返回所有的键。当传入一个指定数组中某个元素时,返回该元素对应的键。
4.3.3 排序函数
PHP提供了多个排序的函数,例如sort()函数、rsort()函数、ksort()函数等。
以sort()函数为例,讲解数组的排序功能。sort()函数的作用就是对数组中的元素按照从小到大的顺序进行排序。
bool sort(array $array [,int $sort_flag=sort_regular]);
在上面的声明中,$array参数表示需要排序的数组,$sort_flag是可选参数,sort()函数会根据$sort_flag的值改变数组的排序方式。$sort_flag的取值如表4-3所示:
表4-3 $sort_flag的取值范围