本文档整理自php学习手册,在使用过程中发现数组函数大量使用,今天将它全部整理出来,便于以后查阅和使用。
语法 : array array([mixed ...]);
说明 :
传回参数的数组,参数能以"=>"运算子来给予索引值,此函数不是正规的函数,主要是用来表示数组。
$arr=array(0=>123,2=>’tere’);
array_count_values ---计算数组所有的值
语法 : array array_count_values(array input);
说明 :
此函数传回一计算后之数组结果,传回的数组其索引值为参数input的值,而数组的值则是参数input所出现的次数。
Example :
<?php
$array = array(1 , "hello" , 1 , "world" , "hello");
array_count_values($array); //returns array(1 => 2 , "hello" => 2 , "world" => 1)
?>
语法 :array array_diff (array array1, array array2 [, array ...])
说明 :
Array_diff( )传回array1没有出现在其它引数之中的所有的值,此函数传回一数组型态,传回的数组其索引值将保留。
Example :
<?php
$array1 = array ("a" => "green", "red", "blue");
$array2 = array ("b" => "green", "yellow", "red");
$result = array_diff ($array1, $array2);
?>
这将使$result有着array("blue")
语法 : array array_flip(array trans);
说明 :此函数传回翻转(flip)顺序的数组。
Example :
<?php
$trans = array_flip($trans);
$original = strtr($str , $trans);
?>
语法 :array array_intersect (array array1, array array2 [, array ...])
说明 :
Array_intersect( )传回array1出现在所有引数之中的所有的值,此函数将传回一数组型态,传回的数组其索引值将保留。
Example :
<?php
$array1 = array ("a" => "green", "red", "blue");
$array2 = array ("b" => "green", "yellow", "red");
$result = array_intersect ($array1, $array2);
?>
这将使$result有着array( "a" => "green" , "red" )
语法 :array array_keys(array input [ , mixed search_value] );
说明 :
此函数从参数input传回数字和字符串的索引值,参数search_value是非必需的,若有指定则只传回所指定的值的索引值,否则将从input传回所有的索引值。
Example :
<?php
$array = array(0 => 100, "color" => "red");
array_keys($array); // returns array(0, "color")
$array = array(1, 100, 2, 100);
array_keys($array, 100); // returns array(0, 2)
?>
语法 :array array_merge(array array1, array array2 [ , array ...] );
说明 :
此函数将两个以上的数组合并在一起,如此一来它们的值则附加在先前的后面。若输入的数组有着相同的字符串索引值,则后来的值会将覆盖到之前的值,无论如何,数组有着相同的数字索引,但是随后的值将不会覆盖过原先的值,但是会被附加上。
Example :
<?php
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid");
array_merge($array1, $array2);
?>
产生的数组将会是 array("color" => "green", 2, 4, "a", "b", "shape" => "trapezoid")
语法 :array array_merge_recursive (array array1, array array2 [, array ...])
说明 :
Array_merge_recursive( )将两个以上的数组合并在一起,如此一来它们的值则附加在先前的后面。
如果输入的数组有着相同的字符串索引值,则这些值会合并起来到数组中,而且是以递归的方式,如此一来假使值的本身是个数组,这个函数将会合并它在另一个数组之中。无论如何,数组有着相同的数字的索引,但是随后的值将不会覆盖过原先的值,但是会被附加上。
Example :
<?php
$ar1 = array ("color" => array ("favorite" => "red"), 5);
$ar2 = array (10, "color" => array ("favorite" => "green", "blue"));
$result = array_merge_recursive ($ar1, $ar2);
?>
产生的数组将会是
array( "color" => array ( "favorite" => array( "red" , "green" ), "blue" ),5 ,10)
语法 :bool array_multisort (array ar1 [,mixed arg [,mixed ...[,array...]]])
说明 :
Array_multisort( )能用来立刻将数个数组或多样尺寸(multi-dimensional)数组排序。
输入的数组被看作是表格(table)的栏位,依照列(rows)将它排序,这类似于SQL ORDER BY clause的功能,第一个数组是首要(PRimary)排序的数组,此数组中的列(值)以下一个输入的数组对照相同的排序。
这个函数的引数结构是个独特(unusual)位元,但是是可变通的。第一个引数必定是个数组,随后的引数可以是个数组或是下个列表的排序旗标(flag)之一。
排序顺序旗标 :
SORT_ASC - 排序成上升的顺序
SORT_DESC - 排序成下降的顺序
排序型态旗标 :
SORT_REGULAR - 正常的比较项目
SORT_NUMERIC - 以数字比较项目
SORT_STRING - 看作是字符串来比较项目
不能使用二个相同型态的旗标指定在各各数组之后,排序的旗标指定在数组引数的后面,只对此数组起作用,其它的将重设为预设的SORT_ASC和SORT_REGULAR在数组引数之后。
成功则传回true,失败则传回false。
Example :
<?php
$ar1 = array ("10", 100, 100, "a");
$ar2 = array (1,3,"2",1);
array_multisort ($ar1,$ar2);
?>
此范例排序后,第一个数组将会是10 , "a" , 100 , 100,第二个数组将会是1 , 1 , 2 , "3"。
Example :
<?php
$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1));
array_multisort ($ar[0], SORT_ASC, SORT_STRING,
$ar[1], SORT_NUMERIC, SORT_DESC);
?>
在此范例排序后,第一个数组将会是10 , 100 , 100 , "a" (它被看作是字符串且上升排序),且第二个数组将会是1 , 3 , "2" , 1(它被看作是数值且下降排序)。
语法 :array array_pad(array input, int pad_size, mixed pad_value);
说明 :
此函数将数组array填塞成大小为pad_size和值为pad_value的数组,且将填塞后的数组传回,若参数pad_size是一正数,则填塞在数组的右方,若为负数,则填塞在数组的左方。如果参数pad_size的绝对值小于或等于数组input的长度,则将不填塞。
Example :
<?php
$input = array(12, 10, 9);
$result = array_pad($input, 5, 0);
// result is array(12, 10, 9, 0, 0)
$result = array_pad($input, -7, -1);
// result is array(-1, -1, -1, -1, 12, 10, 9)
$result = array_pad($input, 2, "noop");
// not padded
?>
语法 :mixed array_pop(array array);
说明 :此函数传回数组array的最后一个元素,将数组array缩短一个元素。
Example :
<?php
$stack = array("orange", "apple", "raspberry");
$fruit = array_pop($stack);
?>
在此之后,$stack只有二个元素"orange"与"apple",且$fruit为"raspberry"。
语法 :int array_push(array array, mixed var [ , mixed ...] );
说明 :
此函数将参数array看做是一叠(stack),且延伸变量在参数array的末端之上,参数array的长度依照变量的数目而增加。
有着相同的效果是 :
<?php
$array[ ] = $var;
?>
重覆各个var。
传回数组中元素的新数目。
Example :
<?php
$stack = array(1, 2);
array_push($stack, "+", 3);
?>
此范列将会使$stack有四个元素:1,2,"+"和3
语法 :mixed array_rand (array input [, int num_req])
说明 :
Array_rand( )当你想要随机挑选数组的一个或多个值出来时相当有用,引数num_reg是非必需的,它指出你想要挑选出几个值出来,如果没有指定,则它的预设值是1。
如果你只挑选一个值,array_rand( )传回随机值的索引。否则,它传回随机值的索引放在数组中,将此数组传回。如此一来你不但可以挑选随机索引值而且可将数组的值输出。
别忘了呼叫srand( )来设定乱数种子。
Example :
<?php
srand ((double) microtime() * 10000000);
$input = array ("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand ($input, 2);
print $input[$rand_keys[0]]."\n";
print $input[$rand_keys[1]]."\n";
?>
语法 :array array_reverse(array array);
说明 :此函数将参数array的元素顺序颠倒,且传回新的数组。
Example :
<?php
$input = array("php", 4.0, array("green", "red"));
$result = array_reverse($input);
?>
此范列使$result成为array(array("green", "red"), 4.0, "php")。
语法 :mixed array_shift(array array);
说明 :
此函数移动数组array的第一个元素并将它传回,将数组array缩短一个元素,并且全部向下移动。
Example :
<?php
$args = array("-v", "-f");
$opt = array_shift($args);
?>
此范例将会使$arge有一个元素"-f",且$opt有着"-v"。
语法 :array array_slice(array array, int offset, int [length] );
说明 :
此函数从数组array传回元素的一部份,若offset为正数,则取回的部份将起始于数组中的offset处;若offset为负数,则从数组的末端开始。若length有给予且是正数,将会取回length个元素,若length是负数,则会停止于数组末端处第length个元素,若省略此参数,则传回的部份将会从offset直到数组的末端。
Example :
<?php
$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 2); // returns "c", "d", and "e"
$output = array_slice($input, 2, -1); // returns "c", "d"
$output = array_slice($input, -2, 1); // returns "d"
$output = array_slice($input, 0, 3); // returns "a", "b", and "c"
?>
语法 :array array_splice(array input, int offset, int [length] , array