PHP函数库分类一_第1页
PHP函数库分类一_第2页
PHP函数库分类一_第3页
PHP函数库分类一_第4页
PHP函数库分类一_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、函数库分类一1. 数组(一)数组函数列表· array - 新建一个数组 array(PHP 4, PHP 5)array  新建一个数组说明array array ( mixed $.  )返回根据参数建立的数组。参数可以用 => 运算符给出索引。关于数组是什么的信息请阅读数组一节。Note:array() 是一个语言结构,用于字面上表示数组,不是常规的函数。语法“index => values”,用逗号分开,定义了索引和值。索引可以是字符串或数字。如果省略了索

2、引,会自动产生从 0 开始的整数索引。如果索引是整数,则下一个产生的索引将是目前最大的整数索引 + 1。注意如果定义了两个完全一样的索引,则后面一个会覆盖前一个。在最后一个定义的数组项目之后加一个逗号虽然不常见,却是合法的语法。下面的例子演示了怎样建立一个二维数组,怎样给相应的数组指定键名,以及怎样在普通数组中略过和继续数字索引。Example #1 array() 例子<?php$fruits = array (    "fruits"  =>

3、0;array("a" => "orange", "b" => "banana", "c" => "apple"),    "numbers" => array(1, 2, 3, 4, 5, 6),    

4、"holes"   => array("first", 5 => "second", "third");?>Example #2 array() 的自动索引<?php$array = array(1, 1, 1, 1,  1, 8 => 1,  4 =>

5、 1, 19, 3 => 13);print_r($array);?>以上例程会输出:Array( 0 => 1 1 => 1 2 => 1 3 => 13 4 => 1 8 => 1 9 => 19)注意索引 3 被定义了两次,保留了最后的值 13。索引 4 在 索引 8 之后定义,下一个自动生成的索引(值为 19 那个)为 9,因为最大的索引是 8。本例建立了从 1 开始的数组。Example #3 从 1 开始索引的 array()<?php$firstquarter&

6、#160;= array(1 => 'January', 'February', 'March');print_r($firstquarter);?>以上例程会输出:Array( 1 => January 2 => February 3 => March)在 Perl 中,可以访问在双引号内的数组的值。但在 PHP 中需要将数组用花括号括起来。Example #4 访问双引号内的数组<?php$foo = array('bar'

7、; => 'baz');echo "Hello $foo'bar'!" / Hello baz!?>· array_change_key_case - 返回字符串键名全为小写或大写的数组 (PHP 4 >= 4.2.0, PHP 5)array_change_key_case  返回字符串键名全为小写或大写的数组说明array array_change_key_case ( array&

8、#160;$input , int $case  )array_change_key_case() 将 input 数组中的所有键名改为全小写或大写。改变是根据后一个选项 case 参数来进行的。可以在这里用两个常量,CASE_UPPER 和 CASE_LOWER。默认值是 CASE_LOWER。本函数不改变数字索引。Example #1 array_change_key_case() 例子<?php$input_array = 

9、array("FirSt" => 1, "SecOnd" => 4);print_r(array_change_key_case($input_array, CASE_UPPER);?>以上例程会输出:Array( FIRST => 1 SECOND => 4)如果一个数组中的多个键名经过本函数后变成一样的话(例如 "keY" 和 "kEY"),最后一个值将覆盖其它的值。· array_chunk - 将一

10、个数组分割成多个 (PHP 4 >= 4.2.0, PHP 5)array_chunk  将一个数组分割成多个说明array array_chunk ( array $input , int $size , bool $preserve_keys  )array_chunk() 将一个数组分割成多个数组,其中每个数组的单元数目由 size 决定。最后一个数组的单元数目可能会少几个。得到的数组是一个多维数组中的单元,其索引从零开始。

11、将可选参数 preserve_keys 设为 TRUE,可以使 PHP 保留输入数组中原来的键名。如果你指定了 FALSE,那每个结果数组将用从零开始的新数字索引。默认值是 FALSE。Example #1 array_chunk() 例子<?php$input_array = array('a', 'b', 'c', 'd', 'e');print_r(array_chunk($

12、input_array, 2);print_r(array_chunk($input_array, 2, true);?>以上例程会输出:Array( 0 => Array ( 0 => a 1 => b ) 1 => Array ( 0 => c 1 => d ) 2 => Array ( 0 => e )Array( 0 => Array ( 0 => a 1 => b ) 1 => Array ( 2 => c 3 => d ) 2 => Array ( 4 =&

13、gt; e )· array_combine - 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值(PHP 5)array_combine  创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值说明array array_combine ( array $keys , array $values )返回一个 array,用来自 keys 数组的值作为键名,来自 values 数组的值作为相应的值。如果两

14、个数组的单元数不同或者数组为空时返回 FALSE。Example #1 简单的 array_combine() 例子<?php$a = array('green', 'red', 'yellow');$b = array('avocado', 'apple', 'banana');$c = array_combine($a, $b);print_r($c)

15、;?>以上例程会输出:Array( green => avocado red => apple yellow => banana)· array_count_values - 统计数组中所有的值出现的次数(PHP 4, PHP 5)array_count_values  统计数组中所有的值出现的次数说明array array_count_values ( array $input )array_count_values() 返回一个数组,该数组用 input&#

16、160;数组中的值作为键名,该值在input 数组中出现的次数作为值。Example #1 array_count_values() 例子<?php$array = array(1, "hello", 1, "world", "hello");print_r(array_count_values ($array);?>以上例程会输出:Array( 1 => 2 hello => 2 world => 1)&

17、#183; array_diff - 计算数组的差集(PHP 4 >= 4.0.1, PHP 5)array_diff  计算数组的差集说明array array_diff ( array $array1 , array $array2 , array $ .  )array_diff() 返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意键名保留不变。Example #1 

18、array_diff() 例子<?php$array1 = array("a" => "green", "red", "blue", "red");$array2 = array("b" => "green", "yellow", "red");$result&

19、#160;= array_diff($array1, $array2);print_r($result);?>在 $array1 中多次出现的值一样处理,输出结果为:Array( 1 => blue)Note: 两个单元仅在 (string) $elem1 = (string) $elem2 时被认为是相同的。也就是说,当字符串的表达是一样的时候。Note: 注意本函数只检查了多维数组中的一维。当然可以用 array_diff($array10, $array20); 检查更深的维度。Warning本函

20、数在 PHP 4.0.4 中是坏的!· array_diff_assoc - 带索引检查计算数组的差集(PHP 4 >= 4.3.0, PHP 5)array_diff_assoc  带索引检查计算数组的差集说明array array_diff_assoc ( array $array1 , array $array2 , array $ .  )array_diff_assoc() 返回一个数组,该数组包括了所有在 a

21、rray1 中但是不在任何其它参数数组中的值。注意和 array_diff() 不同的是键名也用于比较。Example #1 array_diff_assoc() 例子<?php$array1 = array ("a" => "green", "b" => "brown", "c" => "blue&qu

22、ot;, "red");$array2 = array ("a" => "green", "yellow", "red");$result = array_diff_assoc($array1, $array2);?>以上例程会输出:Array( b => brown c => blue 0 => red)上面的例子中可以看到键值对 "a

23、" => "green" 在两个数组中都有,因此不在本函数的输出中。与此不同,键值对 0 => "red" 出现在输出中是因为第二个参数中的 "red" 的键名是 1。键值对 key => value 中的两个值仅在 (string) $elem1 = (string) $elem2 时被认为相等。也就是说使用了严格检查,字符串的表达必须相同。Note: 注意本函数只检查了多维数组中的一维。当然可以

24、用array_diff_assoc($array10, $array20); 检查更深的维度。· array_diff_key - 使用键名比较计算数组的差集(PHP 5 >= 5.1.0)array_diff_key  使用键名比较计算数组的差集说明array array_diff_key ( array $array1 , array $array2 , array $ .  )array_diff_key() 返回

25、一个数组,该数组包括了所有出现在 array1 中但是未出现在任何其它参数数组中的键名的值。注意关联关系保留不变。本函数和 array_diff() 相同只除了比较是根据键名而不是值来进行的。Example #1 array_diff_key() 例子<?php$array1 = array('blue'  => 1, 'red'  => 2, 'green' 

26、 => 3, 'purple' => 4);$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);var_dump(array_diff_key($array1, $array2);

27、?>以上例程会输出:array(2) "red"=> int(2) "purple"=> int(4)在 key => value 对中的两个键名仅在 (string) $key1 = (string) $key2 时被认为相等。换句话说,执行的是严格类型检查,因此字符串的表达必须完全一样。Note: 注意本函数只检查了多维数组中的一维。当然,可以用array_diff_key($array10, $array20); 来检查更深的维度。· array_diff

28、_uassoc - 用用户提供的回调函数做索引检查来计算数组的差集(PHP 5)array_diff_uassoc  用用户提供的回调函数做索引检查来计算数组的差集说明array array_diff_uassoc ( array $array1 , array $array2 , array $. , callback$key_compare_func )array_diff_uassoc() 返回一个数组,该数组包括了所有

29、在 array1 中但是不在任何其它参数数组中的值。注意和 array_diff() 不同的是键名也用于比较。此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。这和 array_diff_assoc() 不同的是还使用了比较索引的内部函数。Example #1 array_diff_uassoc() 例子<?phpfunction key_compare_func($a, $b)  &

30、#160; if ($a = $b)         return 0;        return ($a > $b)? 1:-1;$array1 = array("a" => "green", "b" =

31、> "brown", "c" => "blue", "red");$array2 = array("a" => "green", "yellow", "red");$result = array_diff_uassoc($array1, $array2, "ke

32、y_compare_func");print_r($result);?>以上例程会输出:Array( b => brown c => blue 0 => red)上面的例子中 "a" => "green" 出现在两个数组中因此不在函数的输出中。但是 0 => "red"却在输出中,因为第二个参数中的 "red" 的键名是 1。两个索引是否相同是由用户提供的回调函数来检查的。Note: 注意本函数只检查

33、了多维数组中的一维。当然可以用array_diff_uassoc($array10, $array20, "key_compare_func"); 检查更深的维度。· array_diff_ukey - 用回调函数对键名比较计算数组的差集(PHP 5 >= 5.1.0)array_diff_ukey  用回调函数对键名比较计算数组的差集说明array array_diff_ukey ( array $array1 , array $array2

34、60;, array $ . , callback$key_compare_func )array_diff_ukey() 返回一个数组,该数组包括了所有出现在 array1 中但是未出现在任何其它参数数组中的键名的值。注意关联关系保留不变。本函数和 array_diff() 相同只除了比较是根据键名而不是值来进行的。此比较是通过用户提供的回调函数来进行的。如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。Example #1 array_

35、diff_ukey() 例子<?phpfunction key_compare_func($key1, $key2)    if ($key1 = $key2)        return 0;    else if ($key1 > $key2)      

36、;  return 1;    else        return -1;$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' 

37、;=> 4);$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);var_dump(array_diff_ukey($array1, $array2, 'key_compare_func');?>以上例程会输出

38、:array(2) "red"=> int(2) "purple"=> int(4)Note: 注意本函数只检查了多维数组中的一维。当然,可以用array_diff_ukey($array10, $array20, 'callback_func'); 来检查更深的维度。· array_fill - 用给定的值填充数组(PHP 4 >= 4.2.0, PHP 5)array_fill  用给定的值填充数组说明array array_fill (

39、 int $start_index , int $num , mixed $value )array_fill() 用 value 参数的值将一个数组填充 num 个条目,键名由 start_index 参数指定的开始。注意 num 必须是一个大于零的数值,否则 PHP 会发出一条警告。Example #1 array_fill() 例子<?php$a = array_f

40、ill(5, 6, 'banana');print_r($a);?>$a 现在是:Array( 5 => banana 6 => banana 7 => banana 8 => banana 9 => banana 10 => banana)· array_fill_keys - 使用指定的键和值填充数组(PHP 5 >= 5.2.0)array_fill_keys  使用指定的键和值填充数组说明array array_fill_keys (

41、 array $keys , mixed $value )使用 value 参数的值作为值,使用 keys 数组的值作为键来填充一个数组。参数keys使用该数组的值作为键。非法值将被转换为字符串。value填充使用的值。返回值返回填充后的数组。范例Example #1 array_fill_keys() 范例<?php$keys = array('foo', 5, 10, 'bar');$

42、a = array_fill_keys($keys, 'banana');print_r($a);?>以上例程会输出:Array( foo => banana 5 => banana 10 => banana bar => banana)· array_filter - 用回调函数过滤数组中的单元(PHP 4 >= 4.0.6, PHP 5)array_filter  用回调函数过滤数组中的单元说明array array_filter ( ar

43、ray $input , callback $callback  )array_filter() 依次将 input 数组中的每个值传递到 callback 函数。如果 callback 函数返回TRUE,则 input 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。Example #1 array_filter() 例子<?phpfunction odd($var)   &#

44、160;return($var % 2 = 1);function even($var)    return($var % 2 = 0);$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);$array2 =&

45、#160;array(6, 7, 8, 9, 10, 11, 12);echo "Odd : "print_r(array_filter($array1, "odd");echo "Even: "print_r(array_filter($array2, "even");?>以上例程会输出:Odd :Array( a => 1 c => 3 e => 5)Even:Array( 0 => 6 2 => 8 4 => 10 6 => 12)用户不应在回调函数中修改数组本身。例如增加删除单元或者对 array_filter() 正在作用的数组进行 unset。如果数组改变了,此函数的行为没有定义。如果没有提供 callback 函数,array_filter() 将删除 input 中所有等值为 FALSE 的条目。更多信息见转换为布尔值。Example #2 array_filter() 无&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论