PHP函数库分类二.docx

上传人:b****4 文档编号:3990951 上传时间:2022-11-27 格式:DOCX 页数:27 大小:26.74KB
下载 相关 举报
PHP函数库分类二.docx_第1页
第1页 / 共27页
PHP函数库分类二.docx_第2页
第2页 / 共27页
PHP函数库分类二.docx_第3页
第3页 / 共27页
PHP函数库分类二.docx_第4页
第4页 / 共27页
PHP函数库分类二.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

PHP函数库分类二.docx

《PHP函数库分类二.docx》由会员分享,可在线阅读,更多相关《PHP函数库分类二.docx(27页珍藏版)》请在冰豆网上搜索。

PHP函数库分类二.docx

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 -按照上升

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1