sharetop 
   
  我们手头的PHP资料不多,大家是不是都有一份php4gb.chm。我最欣赏它里面的函数库部分了,真正的在线帮助。但是PHP发展的脚步实在太快了。 
   
  格式是这样的: 
   
  函数名 支持版本 
   
  函数声明 
  说明及参数、返回值 
   
  例子 
      
  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");.