当前位置:编程学习 > php >>

介绍几个array库的新函数

答案:     介绍几个array库的新函数
  sharetop
  
  我们手头的PHP资料不多,大家是不是都有一份php4gb.chm。我最欣赏它里面的函数库部分了,真正的在线帮助。但是PHP发展的脚步实在太快了,你睢,我最近在www.php.net/manual/ 又找到了一些扩展的数组函数。
  
  下面我把它们介绍给大家吧,我的英文水平不高,有译的不对的地方,请指正。
  格式是这样的:
  
  函数名 支持版本
  
  函数声明
  说明及参数、返回值
  
  例子
  
  
  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
&nb

上一个:使用php4加速网络传输
下一个:多文件上载系统完整版

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,