四、统计
1、int count ( mixed var [, int mode] )
或int sizeof ( mixed var [, int mode] )
返回var中所含有的元素数。var一般是数组类型,因为其他类型的元素数都是1,null是0。如果mode设为COUNT_RECURSIVE(或1),那么多维数组的所有元素都将被统计。
2、bool in_array ( mixed needle, array haystack [, bool strict] )
判断needle是否在haystack中,如果strict为true,则类型也必须符合。
3、bool array_key_exists ( mixed key, array search )
判断key是否为search中的一个键名。
4、array array_count_values ( array input )
统计input中各元素出现的次数,并以这个元素的值为键名,次数为值返回一个数组。
5、array array_intersect ( array array1, array array2 [, array ...] )
如果array1中的一个元素在其后的数组中都出现,那么这个元素将被返回到新的数组。
6、array array_intersect_assoc ( array array1, array array2 [, array ...] )
如果array1中的一个元素在其后的数组中都出现(键、值都要配对),那么这个元素将被返回到新的数组。
7、array array_intersect_key ( array array1, array array2 [, array ...] )
如果array1中的一个元素的键名在其后的数组中都出现,那么这个元素将被返回到新的数组。
8、array array_keys ( array input [, mixed search_value] )
返回input中所有的键名。如果search_value被指定,则返回键名是search_value的元素的索引。
9、array array_values ( array input )
返回input中所有的元素,重新索引。
五、比较
1、array array_diff ( array array1, array array2 [, array ...] )
如果array1中的一个元素在其后的数组中都未出现,那么这个元素将被返回到新的数组。
2、array array_diff_assoc ( array array1, array array2 [, array ...] )
如果array1中的一个元素在其后的数组中都未出现(成对的键、值都未出现),那么这个元素将被返回到新的数组。
3、array array_diff_key ( array array1, array array2 [, array ...] )
如果array1中的一个元素的键名在其后的数组中都未出现,那么这个元素将被返回到新的数组。
六、指针操作
所有的数组都有一个内部的指针,当数组合被创建时,指针指向第一项。
1、mixed current ( array &array )
返回当前指针所指元素的值。如果元素为空,则返回false。
2、mixed next ( array &array )
将指针向后移动一项,并返回其值。如果后面没有项了,则返回false。
3、mixed prev ( array &array )
将指针向前移动一项,并返回其值。如果前面没有项了,则返回false。
4、mixed reset ( array &array )
将指针移到第一项,并返回其值。如果数组为空,则返回false。
5、mixed end ( array &array )
将指针移到最后一项,并返回其值。如果数组为空,则返回false。
6、mixed key ( array &array )
返回当前指针所指元素的键名。如果元素为空,则返回false。
7、array each ( array &array )
返回当前指针所指元素的键、值。如果数组为空,则返回false。如:
$arr=array('k1'=>'v1','k2'=>'v2');
print_r(each($arr));
输出:Array ( [0] => k1 [key] => k1 [1] => v1 [value] => v1 )
七、堆栈操作
1、mixed array_shift ( array &array )
该函数将数组中第一个元素取出并返回其值,因此数组的长度会减少1,用数字索引的键名将重新从0排序,字符串键名不会受影响。如果数组为空,则返回null。
2、int array_unshift ( array &array, mixed var [, mixed ...] )
该函数将后面的参数按顺序加入到数组array的顶部。用数字索引的键名将重新从0排序,字符串键名不会受影响。
3、mixed array_pop ( array &array )
该函数将数组中最后一个元素取出并返回其值,因此数组的长度会减少1,用数字索引的键名将重新从0排序,字符串键名不会受影响。如果数组为空,则返回null。
4、int array_push ( array &array, mixed var [, mixed ...] )
该函数将后面的参数按顺序加入到数组array的尾部。用数字索引的键名将重新从0排序,字符串键名不会受影响。
八、其他
1、void list ( mixed varname, mixed ... )
将几个变量看作数组处理。如list(1,2,3)就相当于array(1,2,3)。
2、mixed array_search ( mixed needle, array haystack [, bool strict] )
在haystack中搜索值为needle的元素并返回它们的键名。如果strict为true,则搜索时类型也要匹配。
3、mixed array_rand ( array input [, int num_req] )
在input中随机抽去num_req个元素(默认为1),并返回。
4、array array_flip ( array trans )
将所有元素的键、值对换,且后者覆盖前者。
5、array array_unique ( array array )
将array中重复的元素去掉,键名取第一次出现的。
6、number array_sum ( array array )
将数组中的元素全部相加,并返回。非数字元素就进行转换,规则同intval()。
7、array array_change_key_case ( array input [, int case] )
将数组input的所有键名按照case指定的模式进行大小写转换并返回。case可取CASE_UPPER或CASE_LOWER。