首页 > 代码库 > 数组的操作
数组的操作
一、count()和sizeof()的功能是一样的,它们都可以有第二个参数,设置为1 ,则会扫描多维数组计算数组元素的个数,默认为0,不扫描多维数组元素的个数,例如:输出结果为2,输出结果为8;
二、compact()函数可以把一个或多个变量甚至数组建立成数组元素,例如
输出结果为:Array ( [num] => 10 [str] => shangjie [array] => Array ( [0] => 1 [1] => 2 [2] => 3 ) ),与compact相对应的是extract()函数,它将数组中的单元转化为变量,例如:输出结果分别为:10,string,Array ( [0] => 1 [1] => 2 [2] => 3 );
三、array_combine($array1,$array2)函数可以讲两个数组创建成另外一个数组,将数组$array1的值作为键名,$array2的值作为相应的值创建一个新的数组,例如:输出结果为Array ( [1] => a [2] => b [3] => c ),注:两个数组的个数一定要相同;
四、range($low,$high[,$step])函数自动创建一个值在指定范围内的数组,$Low为开始元素的值,$high为结束元素的值。$step是单元之间的步进值,应该为正值,默认为1,另$low可以比$high大,例如:输出结果为:Array ( [0] => 5 [1] => 4 [2] => 3 [3] => 2 [4] => 1 ) Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 ) Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h ) Array ( [0] => a [1] => d [2] => g )
五、数组可以不用预先初始化或创建就可以直接使用,使用它的时候意味着它已经被创建了。例如:输出结果为:Array ( [0] => 0 [1] => 1 [2] => 2 ) ;
六、array_key_exists()和in_array()函数检查数组中是否存在某个键名和值,两个函数都为布尔值,存在则返回true,不存在则返回false。例如:<?php $array = array(1,2,3,5=>4,7=>5);if(in_array(5, $array)){echo ‘数组中存在:5‘;}if(!array_key_exists(3, $array)){echo ‘数组中不存在键名:3‘;}?>,数据结果为:数组中存在:5数组中不存在键名:3。注:isset()也可以用来检查数组中的键名是否存在,但如果检查的键名对应的值为NULL是,isset()函数返回false,而array_key_exists()则返回true。
七、array_search()函数也可以用于检查数组中的值是否存在,与in_array()函数不同的是:in_array()函数返回的事true或false,而array_search()函数当值存在时返回这个值的键名,若不存在时返回null。例如:<?php $array = array(1,2,3,‘a‘,5,‘b‘);$key = array_search(‘a‘, $array);if($key == null){echo ‘数组中不存在这个值‘;}else{echo $key;}?>,输出结果为:3。
八、key()函数可以取得数组当前单元的键名。例如:<?php$array = array(‘a‘ => 1, ‘b‘ => 2, ‘c‘ => 3, ‘d‘ => 4);echo key($array);?>,输出结果为a。
九、list()函数可以将数组中的值赋给指定的变量,例如:<?php$array = array(‘红色‘, ‘蓝色‘, ‘绿色‘);list($red, $blue, $green) = $array;echo $red.‘,‘.$blue.‘,‘.$green;?>,输出结果为:红色,蓝色,绿色。注:list()函数仅能用于键名为数字的数组并且数字键名从0开始,如果键名不是连续的数字,会发生错误,并且list()的变量数量不能多于数组中的变量数量。
十、array_fill($star_index, $num, $value)函数将一个数组从下标为$start_index开始,填充$num个值为$value的单元,其中$value可以是数组也可是其他类型的值,$num一定是大于零的整数,例如:<?php$array1 = array_fill(2, 3, array(1,2));print_r($array1);?>,输出结果为:Array ( [2] => Array ( [0] => 1 [1] => 2 ) [3] => Array ( [0] => 1 [1] => 2 ) [4] => Array ( [0] => 1 [1] => 2 ) )。
十一、array_fill_keys($keys, $value)函数将指定的数组$keys中的值作为键名,$value作为值,返回一个新的数组,例如:<?php$array = array(‘a‘, 2 ,‘b‘);$array1 = array_fill_keys($array, array(1,2));print_r($array1);?>,输出结果为:Array ( [a] => Array ( [0] => 1 [1] => 2 ) [2] => Array ( [0] => 1 [1] => 2 ) [b] => Array ( [0] => 1 [1] => 2 ) )。
十二、array_flip()函数将数组中的键名和值互换,数组中的之必须为合法的键名,交换前数组中有相同的值,转换之后保存最后一个。例如:<?php$array = array(1,2,3,4,5,6,3,7,2);$array1 = array_flip($array);print_r($array1);?>,输出结果为:Array ( [1] => 0 [2] => 8 [3] => 6 [4] => 3 [5] => 4 [6] => 5 [7] => 7 )。
十三、array_keys()函数和aray_values()函数,可以取得数组中所有的键名和值,并保存到新的数组中,例如:<?php$array = array(‘red‘ => ‘红色‘, ‘blue‘ => ‘蓝色‘, ‘green‘ => ‘绿色‘);$arrayKeys = array_keys($array);$arrayValues = array_values($array);print_r($arrayKeys);print_r($arrayValues);?>,输出结果为:Array ( [0] => red [1] => blue [2] => green ) Array ( [0] => 红色 [1] => 蓝色 [2] => 绿色 )
十四、array_unique()函数可以移除数组中重复的值,返回一个新的数组,并且不会破坏原来的数组。例如:<?php$array = array(1,2,3,4,5,6,3,7,2);$array1 = array_unique($array);print_r($array1);?>,输出结果为:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [7] => 7 )。
数组的操作