介绍几个array库的新函数

来源:互联网 发布:socket编程用什么软件 编辑:程序博客网 时间:2024/05/19 19:14
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

 



格式是这样的:

函数名 支持版本

函数声明
说明及参数、返回值

例子




//*************************
array_flip (PHP4 >= 4.0b4)

array array_flip (array trans)

将数组transkeyvalue交换,就是keyvalue,而valuekey了。
返回完成处理的数组。

例:
$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合并,还是生成一个二维数组来合并这相同keyvalue。(表达不清,不好意思,看例子吧)。

例:
$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";

//************************************** 共2页: 上一页 1 [2] 下一页 <script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击