PHP函数库分类二.docx
- 文档编号:3990951
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:27
- 大小:26.74KB
PHP函数库分类二.docx
《PHP函数库分类二.docx》由会员分享,可在线阅读,更多相关《PHP函数库分类二.docx(27页珍藏版)》请在冰豆网上搜索。
PHP函数库分类二
PHP函数库分类二
·array_intersect -计算数组的交集
(PHP4>=4.0.1,PHP5)
array_intersect — 计算数组的交集
说明
array array_intersect ( array $array1 , array $array2 [, array $... ])
array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。
注意键名保留不变。
Example#1 array_intersect() 例子
php
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
?
>
这使得 $result 成为:
Array
(
[a]=>green
[0]=>red
)
Note:
两个单元仅在 (string)$elem1===(string)$elem2 时被认为是相同的。
也就是说,当字符串的表达是一样的时候。
·array_intersect_assoc -带索引检查计算数组的交集
(PHP4>=4.3.0,PHP5)
array_intersect_assoc — 带索引检查计算数组的交集
说明
array array_intersect_assoc ( array $array1 , array $array2 [, array $... ])
array_intersect_assoc() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。
注意和 array_intersect() 不同的是键名也用于比较。
Example#1 array_intersect_assoc() 例子
php
$array1 = array("a" => "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"=>"green" 在两个数组中都存在从而被返回。
值 "red"没有被返回是因为在 $array1 中它的键名是 0 而在 $array2 中 "red" 的键名是 1。
键值对 key=>value 中的两个值仅在 (string)$elem1===(string)$elem2 时被认为相等。
也就是说使用了严格检查,字符串的表达必须相同。
·array_intersect_key -使用键名比较计算数组的交集
(PHP5>=5.1.0)
array_intersect_key — 使用键名比较计算数组的交集
说明
array array_intersect_key ( array $array1 , array $array2 [, array $... ])
array_intersect_key() 返回一个数组,该数组包含了所有出现在 array1 中并同时出现在所有其它参数数组中的键名的值。
Example#1 array_intersect_key() 例子
php
$array1 = array('blue' => 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' 和 'green' 的值在两个数组中是不同的。
但因为只检查键名,因此还是匹配。
返回的值只是 array1 中的。
在 key=>value 对中的两个键名仅在 (string)$key1===(string)$key2 时被认为相等。
换句话说,执行的是严格类型检查,因此字符串的表达必须完全一样。
·array_intersect_uassoc -带索引检查计算数组的交集,用回调函数比较索引
(PHP5)
array_intersect_uassoc — 带索引检查计算数组的交集,用回调函数比较索引
说明
array array_intersect_uassoc ( array $array1 , array $array2 [, array $... ],callback $key_compare_func )
array_intersect_uassoc() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。
注意和 array_intersect() 不同的是键名也用于比较。
此比较是通过用户提供的回调函数来进行的。
如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。
Example#1 array_intersect_uassoc() 例子
php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");
print_r(array_intersect_uassoc($array1, $array2, "strcasecmp"));
?
>
以上例程会输出:
Array
(
[b]=>brown
)
·array_intersect_ukey -用回调函数比较键名来计算数组的交集
(PHP5>=5.1.0)
array_intersect_ukey — 用回调函数比较键名来计算数组的交集
说明
array array_intersect_ukey ( array $array1 , array $array2 [, array $... ],callback $key_compare_func )
array_intersect_ukey() 返回一个数组,该数组包含了所有出现在 array1 中并同时出现在所有其它参数数组中的键名的值。
此比较是通过用户提供的回调函数来进行的。
如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。
Example#1 array_intersect_ukey() 例子
php
function key_compare_func($key1, $key2)
{
if ($key1 == $key2)
return 0;
else if ($key1 > $key2)
return 1;
else
return -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_compare_func'));
?
>
以上例程会输出:
array
(2){
["blue"]=>
int
(1)
["green"]=>
int(3)
})
上例中可以看到只有 'blue' 和 'green' 两个键名出现在两个数组中,因此被返回。
此外注意'blue' 和 'green' 的值在两个数组中是不同的。
但因为只检查键名,因此还是匹配。
返回的值只是 array1 中的。
·array_keys -返回数组中所有的键名
(PHP4,PHP5)
array_keys — 返回数组中所有的键名
说明
array array_keys ( array $input [, mixed $search_value [, bool $strict ]])
array_keys() 返回 input 数组中的数字或者字符串的键名。
如果指定了可选参数 search_value,则只返回该值的键名。
否则 input 数组中的所有键名都会被返回。
自PHP5起,可以用 strict 参数来进行全等比较(===)。
Example#1 array_keys() 例子
php
$array = array(0 => 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"));
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 -检查给定的键名或索引是否存在于数组中
(PHP4>=4.0.7,PHP5)
array_key_exists — 检查给定的键名或索引是否存在于数组中
说明
bool array_key_exists ( mixed $key , array $search )
array_key_exists() 在给定的 key 存在于数组中时返回 TRUE。
key 可以是任何能作为数组索引的值。
array_key_exists() 也可用于对象。
Example#1 array_key_exists() 例子
php
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
echo "The 'first' element is in the array";
}
?
>
Note:
在PHP4.0.6中本函数名为 key_exists()。
Example#2 array_key_exists() 与 isset() 对比
isset() 对于数组中为 NULL 的值不会返回 TRUE,而 array_key_exists() 会。
php
$search_array = array('first' => null, 'second' => 4);
// returns false
isset($search_array['first']);
// returns true
array_key_exists('first', $search_array);
?
>
·array_map -将回调函数作用到给定数组的单元上
(PHP4>=4.0.6,PHP5)
array_map — 将回调函数作用到给定数组的单元上
说明
array array_map ( callback $callback , array $arr1 [, array $... ])
array_map() 返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的单元。
callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
Example#1 array_map() 例子
php
function cube($n)
{
return($n * $n * $n);
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
?
>
这使得 $b 成为:
Array
(
[0]=>1
[1]=>8
[2]=>27
[3]=>64
[4]=>125
)
Example#2 array_map() -使用更多的数组
php
function show_Spanish($n, $m)
{
return("The number $n is called $m in Spanish");
}
function map_Spanish($n, $m)
{
return(array($n => $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);
?
>
以上例程会输出:
//printoutof$c
Array
(
[0]=>Thenumber1iscalledunoinSpanish
[1]=>Thenumber2iscalleddosinSpanish
[2]=>Thenumber3iscalledtresinSpanish
[3]=>Thenumber4iscalledcuatroinSpanish
[4]=>Thenumber5iscalledcincoinSpanish
)
//printoutof$d
Array
(
[0]=>Array
(
[1]=>uno
)
[1]=>Array
(
[2]=>dos
)
[2]=>Array
(
[3]=>tres
)
[3]=>Array
(
[4]=>cuatro
)
[4]=>Array
(
[5]=>cinco
)
)
通常使用了两个或更多数组时,它们的长度应该相同,因为回调函数是平行作用于相应的单元上的。
如果数组的长度不同,则最短的一个将被用空的单元扩充。
本函数一个有趣的用法是构造一个数组的数组,这可以很容易的通过用 NULL 作为回调函数名来实现。
Example#3建立一个数组的数组
php
$a = array(1, 2, 3, 4, 5);
$b = array("one", "two", "three", "four", "five");
$c = array("uno", "dos", "tres", "cuatro", "cinco");
$d = array_map(null, $a, $b, $c);
print_r($d);
?
>
以上例程会输出:
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
)
[3]=>Array
(
[0]=>4
[1]=>four
[2]=>cuatro
)
[4]=>Array
(
[0]=>5
[1]=>five
[2]=>cinco
)
)
·array_merge -合并一个或多个数组
(PHP4,PHP5)
array_merge — 合并一个或多个数组
说明
array array_merge ( array $array1 [, array $array2 [, array $... ]])
array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。
返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。
然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
Example#1 array_merge() 例子
php
$array1 = array("color" => "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() 例子
php
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);
?
>
别忘了数字键名将会被重新编号!
Array
(
[0]=>data
)
如果你想完全保留原有数组并只想新的数组附加到后面,用 + 运算符:
php
$array1 = array();
$array2 = array(1 => "data");
$result = $array1 + $array2;
?
>
数字键名将被保留从而原来的关联保持不变。
Array
(
[1]=>data
)
Warning
array_merge() 的行为在PHP5中被修改了。
和PHP4不同,array_merge() 现在只接受 array 类型的参数。
不过可以用强制转换来合并其它类型。
请看下面的例子。
Example#3 array_merge() PHP5例子
php
$beginning = 'foo';
$end = array(1 => 'bar');
$result = array_merge((array)$beginning, (array)$end);
print_r($result);
?
>
以上例程会输出:
Array
(
[0]=>foo
[1]=>bar
)
·array_merge_recursive -递归地合并一个或多个数组
(PHP4>=4.0.1,PHP5)
array_merge_recursive — 递归地合并一个或多个数组
说明
array array_merge_recursive ( array $array1 [, array $... ])
array_merge_recursive() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。
返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数组中去,这将递归下去,因此如果一个值本身是一个数组,本函数将按照相应的条目把它合并为另一个数组。
然而,如果数组具有相同的数组键名,后一个值将不会覆盖原来的值,而是附加到后面。
Example#1 array_merge_recursive() 例子
php
$ar1 = array("color" => array("favorite" => "red"), 5);
$ar2 = array(10, "color" => array("favorite" => "green", "blue"));
$result = array_merge_recursive($ar1, $ar2);
?
>
$result 成为:
Array
(
[color]=>Array
(
[favorite]=>Array
(
[0]=>red
[1]=>green
)
[0]=>blue
)
[0]=>5
[1]=>10
)
·array_multisort -对多个数组或多维数组进行排序
(PHP4,PHP5)
array_multisort — 对多个数组或多维数组进行排序
说明
bool array_multisort ( array $ar1 [, mixed $arg [, mixed $... [, array $... ]]])
成功时返回 TRUE,或者在失败时返回 FALSE.
array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。
关联(string)键名保持不变,但数字键名会被重新索引。
输入数组被当成一个表的列并以行来排序——这类似于SQL的ORDERBY子句的功能。
第一个数组是要排序的主要数组。
数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。
本函数的参数结构有些不同寻常,但是非常灵活。
第一个参数必须是一个数组。
接下来的每个参数可以是数组或者是下面列出的排序标志。
排序顺序标志:
∙SORT_ASC -按照上升
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP 函数库 分类