1、PHP函数库分类二PHP函数库分类二 array_intersect- 计算数组的交集(PHP 4 = 4.0.1, PHP 5)array_intersect计算数组的交集说明arrayarray_intersect(array$array1,array$array2,array$ . )array_intersect()返回一个数组,该数组包含了所有在array1中也同时出现在所有其它参数数组中的值。注意键名保留不变。Example #1array_intersect()例子green,red,blue);$array2=array(b=green,yellow,red);$result=
2、array_intersect($array1,$array2);?这使得$result成为:Array( a = green 0 = red)Note:两个单元仅在(string) $elem1 = (string) $elem2时被认为是相同的。也就是说,当字符串的表达是一样的时候。 array_intersect_assoc- 带索引检查计算数组的交集(PHP 4 = 4.3.0, PHP 5)array_intersect_assoc带索引检查计算数组的交集说明arrayarray_intersect_assoc(array$array1,array$array2,array$ . )
3、array_intersect_assoc()返回一个数组,该数组包含了所有在array1中也同时出现在所有其它参数数组中的值。注意和array_intersect()不同的是键名也用于比较。Example #1array_intersect_assoc()例子green,b=brown,c=blue,red);$array2=array(a=green,yellow,red);$result_array=array_intersect_assoc($array1,$array2);?$result_array 将是:Array( a = green)上面例子中可以看到只有键值对a = gre
4、en在两个数组中都存在从而被返回。值red没有被返回是因为在$array1中它的键名是0而在$array2中red的键名是1。键值对key = value中的两个值仅在(string) $elem1 = (string) $elem2时被认为相等。也就是说使用了严格检查,字符串的表达必须相同。 array_intersect_key- 使用键名比较计算数组的交集(PHP 5 = 5.1.0)array_intersect_key使用键名比较计算数组的交集说明arrayarray_intersect_key(array$array1,array$array2,array$ . )array_in
5、tersect_key()返回一个数组,该数组包含了所有出现在array1中并同时出现在所有其它参数数组中的键名的值。Example #1array_intersect_key()例子1,red=2,green=3,purple=4);$array2=array(green=5,blue=6,yellow=7,cyan=8);var_dump(array_intersect_key($array1,$array2);?以上例程会输出:array(2) blue= int(1) green= int(3)上例中可以看到只有blue和green两个键名出现在两个数组中,因此被返回。此外注意blue
6、和green的值在两个数组中是不同的。但因为只检查键名,因此还是匹配。返回的值只是array1中的。在key = value对中的两个键名仅在(string) $key1 = (string) $key2时被认为相等。换句话说,执行的是严格类型检查,因此字符串的表达必须完全一样。 array_intersect_uassoc- 带索引检查计算数组的交集,用回调函数比较索引(PHP 5)array_intersect_uassoc带索引检查计算数组的交集,用回调函数比较索引说明arrayarray_intersect_uassoc(array$array1,array$array2,array$
7、 .,callback$key_compare_func)array_intersect_uassoc()返回一个数组,该数组包含了所有在array1中也同时出现在所有其它参数数组中的值。注意和array_intersect()不同的是键名也用于比较。此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。Example #1array_intersect_uassoc()例子green,b=brown,c=blue,red);$array2=array(a=GREEN,B=brown,yellow,red);pr
8、int_r(array_intersect_uassoc($array1,$array2,strcasecmp);?以上例程会输出:Array( b = brown) array_intersect_ukey- 用回调函数比较键名来计算数组的交集(PHP 5 = 5.1.0)array_intersect_ukey用回调函数比较键名来计算数组的交集说明arrayarray_intersect_ukey(array$array1,array$array2,array$.,callback$key_compare_func)array_intersect_ukey()返回一个数组,该数组包含了所有
9、出现在array1中并同时出现在所有其它参数数组中的键名的值。此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。Example #1array_intersect_ukey()例子$key2)return1;elsereturn-1;$array1=array(blue=1,red=2,green=3,purple=4);$array2=array(green=5,blue=6,yellow=7,cyan=8);var_dump(array_intersect_ukey($array1,$array2,key
10、_compare_func);?以上例程会输出:array(2) blue= int(1) green= int(3)上例中可以看到只有blue和green两个键名出现在两个数组中,因此被返回。此外注意blue和green的值在两个数组中是不同的。但因为只检查键名,因此还是匹配。返回的值只是array1中的。 array_keys- 返回数组中所有的键名(PHP 4, PHP 5)array_keys返回数组中所有的键名说明arrayarray_keys(array$input,mixed$search_value,bool$strict )array_keys()返回input数组中的数字或
11、者字符串的键名。如果指定了可选参数search_value,则只返回该值的键名。否则input数组中的所有键名都会被返回。自 PHP 5 起,可以用strict参数来进行全等比较(=)。Example #1array_keys()例子100,color=red);print_r(array_keys($array);$array=array(blue,red,green,blue,blue);print_r(array_keys($array,blue);$array=array(color=array(blue,red,green),size=array(small,medium,large
12、);print_r(array_keys($array);?以上例程会输出:Array( 0 = 0 1 = color)Array( 0 = 0 1 = 3 2 = 4)Array( 0 = color 1 = size) array_key_exists- 检查给定的键名或索引是否存在于数组中(PHP 4 = 4.0.7, PHP 5)array_key_exists检查给定的键名或索引是否存在于数组中说明boolarray_key_exists(mixed$key,array$search)array_key_exists()在给定的key存在于数组中时返回TRUE。key可以是任何能作
13、为数组索引的值。array_key_exists()也可用于对象。Example #1array_key_exists()例子1,second=4);if(array_key_exists(first,$search_array)echoThefirstelementisinthearray;?Note:在 PHP 4.0.6 中本函数名为key_exists()。Example #2array_key_exists()与isset()对比isset()对于数组中为NULL的值不会返回TRUE,而array_key_exists()会。null,second=4);/returnsfalsei
14、sset($search_arrayfirst);/returnstruearray_key_exists(first,$search_array);? array_map- 将回调函数作用到给定数组的单元上(PHP 4 = 4.0.6, PHP 5)array_map将回调函数作用到给定数组的单元上说明arrayarray_map(callback$callback,array$arr1,array$. )array_map()返回一个数组,该数组包含了arr1中的所有单元经过callback作用过之后的单元。callback接受的参数数目应该和传递给array_map()函数的数组数目一致
15、。Example #1array_map()例子这使得$b成为:Array( 0 = 1 1 = 8 2 = 27 3 = 64 4 = 125)Example #2array_map()- 使用更多的数组$m);$a=array(1,2,3,4,5);$b=array(uno,dos,tres,cuatro,cinco);$c=array_map(show_Spanish,$a,$b);print_r($c);$d=array_map(map_Spanish,$a,$b);print_r($d);?以上例程会输出:/ printout of $cArray( 0 = The number 1
16、 is called uno in Spanish 1 = The number 2 is called dos in Spanish 2 = The number 3 is called tres in Spanish 3 = The number 4 is called cuatro in Spanish 4 = The number 5 is called cinco in Spanish)/ printout of $dArray( 0 = Array ( 1 = uno ) 1 = Array ( 2 = dos ) 2 = Array ( 3 = tres ) 3 = Array
17、( 4 = cuatro ) 4 = Array ( 5 = cinco )通常使用了两个或更多数组时,它们的长度应该相同,因为回调函数是平行作用于相应的单元上的。如果数组的长度不同,则最短的一个将被用空的单元扩充。本函数一个有趣的用法是构造一个数组的数组,这可以很容易的通过用NULL作为回调函数名来实现。Example #3 建立一个数组的数组以上例程会输出:Array( 0 = Array ( 0 = 1 1 = one 2 = uno ) 1 = Array ( 0 = 2 1 = two 2 = dos ) 2 = Array ( 0 = 3 1 = three 2 = tres )
18、3 = Array ( 0 = 4 1 = four 2 = cuatro ) 4 = Array ( 0 = 5 1 = five 2 = cinco ) array_merge- 合并一个或多个数组(PHP 4, PHP 5)array_merge合并一个或多个数组说明arrayarray_merge(array$array1,array$array2,array$. )array_merge()将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将
19、不会覆盖原来的值,而是附加到后面。如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。Example #1array_merge()例子red,2,4);$array2=array(a,b,color=green,shape=trapezoid,4);$result=array_merge($array1,$array2);print_r($result);?以上例程会输出:Array( color = green 0 = 2 1 = 4 2 = a 3 = b shape = trapezoid 4 = 4)Example #2 简单的array_merge()例子data
20、);$result=array_merge($array1,$array2);?别忘了数字键名将会被重新编号!Array( 0 = data)如果你想完全保留原有数组并只想新的数组附加到后面,用+运算符:data);$result=$array1+$array2;?数字键名将被保留从而原来的关联保持不变。Array( 1 = data)Warningarray_merge()的行为在 PHP 5 中被修改了。和 PHP 4 不同,array_merge()现在只接受array类型的参数。不过可以用强制转换来合并其它类型。请看下面的例子。Example #3array_merge()PHP 5
21、例子bar);$result=array_merge(array)$beginning,(array)$end);print_r($result);?以上例程会输出:Array( 0 = foo 1 = bar) array_merge_recursive- 递归地合并一个或多个数组(PHP 4 = 4.0.1, PHP 5)array_merge_recursive递归地合并一个或多个数组说明arrayarray_merge_recursive(array$array1,array$. )array_merge_recursive()将一个或多个数组的单元合并起来,一个数组中的值附加在前一个
22、数组的后面。返回作为结果的数组。如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数组中去,这将递归下去,因此如果一个值本身是一个数组,本函数将按照相应的条目把它合并为另一个数组。然而,如果数组具有相同的数组键名,后一个值将不会覆盖原来的值,而是附加到后面。Example #1array_merge_recursive()例子array(favorite=red),5);$ar2=array(10,color=array(favorite=green,blue);$result=array_merge_recursive($ar1,$ar2);?$result成为:Array( col
23、or = Array ( favorite = Array ( 0 = red 1 = green ) 0 = blue ) 0 = 5 1 = 10) array_multisort- 对多个数组或多维数组进行排序(PHP 4, PHP 5)array_multisort对多个数组或多维数组进行排序说明boolarray_multisort(array$ar1,mixed$arg,mixed$.,array$. )成功时返回TRUE, 或者在失败时返回FALSE.array_multisort()可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。关联(string)键名保持不变,但数字键名会被重新索引。输入数组被当成一个表的列并以行来排序这类似于 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。本函数的参数结构有些不同寻常,但是非常灵活。第一个参数必须是一个数组。接下来的每个参数可以是数组或者是下面列出的排序标志。排序顺序标志: SORT_ASC- 按照上升
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1