### 介绍几个 array 库的新函数

。
格式是这样的：
函数名 支持版本
函数声明
说明及参数、返回值
例子
//*************************
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");.