下面我把它们介绍给大家吧,我的英文水平不高,有译的不对的地方,请指正。
格式是这样的:
函数名 支持版本
函数声明
说明及参数、返回值
例子
ok,let's go.
//*************************
array_flip (php4 >= 4.0b4)
array array_flip (array trans)
将数组trans的key、value交换,就是key变value,而value变key了。
返回完成处理的数组。
例:
$a[0]=abc;
$a[1]=def;
after an array_flip() you get:
$a[abc]=0; $a[def]=1;
//***************************
array_count_values (php4 >= 4.0b4)
array array_count_values (array input)
统计input数组中各个值的个数。返回一个数组,以input的值做为key,以出现个数为value的新数组。
例:
$array = array (1, hello, 1, world, hello);
array_count_values ($array);
// returns array (1=>2, hello=>2, world=>1)
//*****************************
array_merge (php4 )
array array_merge (array array1, array array2 [, array ...])
合并多个数组,把array2的内容加在array1的后面。返回结果数组。
如果是关联数组,以字串为key,出现同名的key,则后面的会覆盖前面的,而下标数组不会出现覆盖的现象,只是添加在后面。
例:
$array1 = array (color => red, 2, 4);
$array2 = array (a, b, color => green, shape => trapezoid, 4);
array_merge ($array1, $array2);
//resulting array will be array(color => green, 2, 4, a, b, shape => trapezoid, 4).
see also array_merge_recursive().
//******************************
array_merge_recursive (php4 >= 4.0.1)
array array_merge_recursive (array array1, array array2 [, array ...])
递归合并数组,与上个函数基本类似。区别在于,在关联数组方面,它不是简单地把相同的key合并,还是生成一个二维数组来合并这相同key的value。(表达不清,不好意思,看例子吧)。
例:
$ar1 = array (color => array (favorite => red), 5);
$ar2 = array (10, color => array (favorite => green, blue));
$result = array_merge_recursive ($ar1, $ar2);
//resulting array will be array (color => array (favorite => array (red, green), blue), 5, 10).
明白了吗?red,green被合并成一个新的数组了,放在favorite里。
see also array_merge().
//*******************************
array_intersect (php4 >= 4.0.1)
array array_intersect (array array1, array array2 [, array ...])
取多个数组的交集,返回包含交集元素的新数组。
以array1为基础的,所以了,如果是关联数组,那key值就是array1的了。见例子。
例:
$array1 = array (a => green, red, blue);
$array2 = array (b => green, yellow, red);
$result = array_intersect ($array1, $array2);
//this makes $result have array (a => green, red);
see also array_diff().
//*******************************************
array_diff (php4 >= 4.0.1)
array array_diff (array array1, array array2 [, array ...])
与上个函数相反,这是取多个数组的差集了。
例:
$array1 = array (a => green, red, blue);
$array2 = array (b => green, yellow, red);
$result = array_diff ($array1, $array2);
//this makes $result have array (blue);
see also array_intersect().
//*******************************************
array_keys (php4 )
array_values (php4)
array array_keys (array input [, mixed search_value])
array array_values (array input)
这两个函数有关系,放在一起了。
array_keys可以取出数组所有的key,如果定义了search_value,就只取相应的key值。
array_values取出数组input的所有value值。
例:
$array = array (size => xl, color => gold);
array_values ($array); // returns array (xl, gold)
$array = array (0 => 100, color => red);
array_keys ($array); // returns array (0, color)
$array = array (blue, red, green, blue, blue);
array_keys ($array, blue); // returns array (0, 3, 4)
//**********************************************
array_multisort (php4 >= 4.0b4)
bool array_multisort (array ar1 [, mixed arg [, mixed ... [, array ...]]])
对多个数组同时进行排序,或是对一个多维数组进行多个维的排序。(很有用哦,我上回在中文用户就问了这个问题)。
输入的数组被处理成表的列,按行来排序,有点类似于sql语句中的order by条件。
这个函数的参数不常见,但是很灵活。可是一个数组或是下面这几个标志。
sort_asc - 升序
sort_desc - 降序
sort_regular - 常规比较
sort_numeric - 数值比较
sort_string - 字串比较
一个数组不可以同时给两种类型的排序标志(这个当然了)。每个数组后的标志只对此数组有效。缺省为 sort_asc 和 sort_regular 。
如果正常,返回true,否则返回false。
例1:
$ar1 = array (10, 100, 100, a);
$ar2 = array (1, 3, 2, 1);
array_multisort ($ar1, $ar2);
//结果是 $ar1 = 10, a, 100, 100. $ar2= 1, 1, 2, 3.
例2:
$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);
// after sorting, the first array will contain 10, 100, 100, a (it was sorted as strings in ascending order), and the second one will contain 1, 3, 2, 1 (sorted as numbers, in descending order).
不过,上面这个例子我试了一下,不行,会报参数3要求是数组的错误。(???这个俺也不知了)
如果你直接用 array_multisort($ar[0],sort_asc,$ar[1],sort_desc);可以。
//******************************************
array_pop (php4 )
array_push
array_shift
array_unshift
mixed array_pop (array array)
int array_push (array array, mixed var [, mixed ...])
mixed array_shift (array array)
int array_unshift (array array, mixed var [, mixed ...])
数组作为栈来用的函数。具体使用比较简单了:
pop弹出最后一个元素,返回元素值。
push把参数var加入数组最后。返回位置。与$array[]=$var 功能相同。返回数组新的元素个数。
shift把数组第一个元素弹出,其它顺移一位,相当于左位移。但数组元素个数减小1。返回弹出的元素。
unshift在数组前面加入一个或多个元素,返回新的数组个数。
example 1. array_pop() example
$stack = array (orange, apple, raspberry);
$fruit = array_pop ($stack);
//after this, $stack has only 2 elements: orange and apple, and $fruit has raspberry.
example 2. array_push() example
$stack = array (1, 2);
array_push ($stack, +, 3);
//this example would result in $stack having 4 elements: 1, 2, +, and 3.
example 3. array_shift() example
$args = array (-v, -f);
$opt = array_shift ($args);
//this would result in $args having one element -f left, and $opt being -v.
example 4. array_unshift() example
$queue = array (p1, p3);
array_unshift ($queue, p4, p5, p6);
//this would result in $queue having 5 elements: p4, p5, p6, p1, and p3.
//***************************************
array_rand (php4 >= 4.0.0)
mixed array_rand (array input [, int num_req])
从数组中随机选出一个或多个元素。参数num_req给出要选出的元素个数,缺省为1。
返回一个数组,内容是所选出元素的key。
事先要先调用 srand() 来产生随机数种子。
example 1. array_rand() example
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_reverse (php4 >= 4.0b4)
array array_reverse (array input)
返回一个新数组,把input的元素取相反次序。
example 1. array_reverse() example
$input = array (php, 4.0, array (green, red));
$result = array_reverse ($input);
//this makes $result have array (array (green, red), 4.0, php).
//****************************************
array_slice (php4 )
array array_slice (array array, int offset [, int length])
取一个数组的一部分,从offset开始,长度为length,缺省为到结束。
返回一个新数组。
offset若为正,从数组的offset位置开始,若为负,则从数组的结尾倒数算起。
length为正,是新数组的长度,为负,则也是从数组的结尾倒数。
example 1. array_slice() examples
$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_splice (php4 )
array array_splice (array input, int offset [, int length [, array replacement]])
从数组中移去从offset开始,长度为length的部份,如果给出了replacement[]参数,则用此参数来取代移去部份。
对于offset、length的处理判断,与上例相同。
如果有replacement参数,则用此参数来取代移去部份,如果没有移去,则在offset位置插入。
以下操作等效:
array_push ($input, $x, $y) array_splice ($input, count ($input), 0,
array ($x, $y))
array_pop ($input) array_splice ($input, -1)
array_shift ($input) array_splice ($input, 0, 1)
array_unshift ($input, $x, $y) array_splice ($input, 0, 0, array ($x, $y))
$a[$x] = $y array_splice ($input, $x, 1, $y)
返回一个包含移去元素以后的新数组。
example 1. array_splice() examples
$input = array (red, green, blue, yellow);
array_splice ($input, 2); // $input is now array (red, green)
array_splice ($input, 1, -1); // $input is now array (red, yellow)
array_splice ($input, 1, count($input), orange);
// $input is now array (red, orange)
array_splice ($input, -1, 1, array(black, maroon));
// $input is now array (red, green,
// blue, black, maroon)
//***********************
array_unique (php4 >= 4.0.1)
array array_unique (array array)
从一个数组中移去重复的值。返回新的数组。
如果是关联数组,key以第一个为准。
example 1. array_unique() example
$input = array (a => green, red, b => green, blue, red);
$result = array_unique ($input);
//this makes $result have array (a => green, red, blue);.
以上就介绍了 介绍几个array库的新函数 php,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。