分享
 
 
 

介绍几个array库的新函数

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

介绍几个array库的新函数

作者:不详 今年浏览:3 本月浏览:3 今日浏览:0 总浏览:3 日期:2004-10-12

发表人: 风尚开发网:http://www.vwind.com 文章类型: 转载 来源:[//] 打印

http://www.vwind.com/dev/show.php?id=321&dirid=33&page=1

简介:

--

我们手头的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

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");.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有