好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php中Array数组函数用法详解 - php数组

php中Array数组函数用法详解

在php中数组是一种特殊的数据类型,同时php也给我们提供了大量的数组操作函数,从而让我们在对数组操作时感觉无压力啊,下面我总结了php array数组入门笔记分享给各位。

简介: 本次介绍的是PHP手册中用来对数组进行各种操作的系统函数,可以说数组在PHP中有重要的作用,因此函数也是灰常多,下面天涯把最常用的进行详细说明。

array_change_key_case — 返回字符串键名全为小写或大写的数组

array array_change_key_case ( array $input [, int $case ] )

$case 可为 CASE_UPPER 或 CASE_LOWER(默认)

代码如下:

<?php       $phpha  =  array ( 'Home' => 'http://HdhCmsTestphpfensi测试数据' ,  'Blog' => 'http://HdhCmsTestphpfensi测试数据' );       $phpha_upper  =  array_change_key_case ( $phpha , CASE_UPPER);       $phpha_lower  =  array_change_key_case ( $phpha , CASE_LOWER);  //默认情况       print_r( $phpha_upper );      print_r( $phpha_lower );      ?>       //结果:       Array      (      [HOME] => http: //HdhCmsTestphpfensi测试数据       [BLOG] => http: //HdhCmsTestphpfensi测试数据       )      Array      (      [home] => http: //HdhCmsTestphpfensi测试数据       [blog] => http: //HdhCmsTestphpfensi测试数据       ) 

array_chunk — 将一个数组分割成多个

array array_chunk ( array $input , int $size [, bool $preserve_keys ] )

array_chunk() 将一个数组分割成多个数组,其中每个数组的单元数目由 size 决定。最后一个数组的单元数目可能会少几个。得到的数组是一个多维数组中的单元,其索引从零开始。

将可选参数 preserve_keys 设为 TRUE,可以使 PHP 保留输入数组中原来的键名。如果你指定了 FALSE,那每个结果数组将用从零开始的新数字索引,默认值是 FALSE,代码如下:

<?php       $input_array  =  array ( 'a' ,  'b' ,  'c' ,  'd' ,  'e' );      print_r( array_chunk ( $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] => e      )             ) 

array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值

array array_combine ( array $keys , array $values )

返回一个 array,用来自 keys 数组的值作为键名,来自 values 数组的值作为相应的值。

如果两个数组的单元数不同或者数组为空时返回 FALSE,代码如下:

<?php       $key  =  array ( 'Home' ,  'Blog' );       $key2  =  array ( 'Home' ,  'Blog' ,  'BBS' );       $phpha  =  array ( 'http://HdhCmsTestphpfensi测试数据' ,  'http://HdhCmsTestphpfensi测试数据' );       $phpha_combine  =  array_combine ( $key ,  $phpha );       $phpha_combine_wrong  =  array_combine ( $key2 ,  $phpha );      print_r( $phpha_combine );      print_r( $phpha_combine_wrong );      ?>       //结果:       Array      (      [Home] => http: //HdhCmsTestphpfensi测试数据       [Blog] => http: //HdhCmsTestphpfensi测试数据       ) 

可以看到第二次array_combine()报错了,指出了2个数组的成员数量不相等.

array_count_values — 统计数组中所有的值出现的次数

array array_count_values ( array $input )

array_count_values() 返回一个数组,该数组用 input 数组中的值作为键名,该值在 input 数组中出现的次数作为值,代码如下:

<?php       $phpha  =  array ( 'hello' ,  'world' ,  'tianya' ,  'hello' ,  'world' );       $phpha_result  =  array_count_values ( $phpha );      print_r( $phpha_result );      ?>       //结果:       Array      (      [hello] => 2      [world] => 2      [tianya] => 1      ) 

array_diff — 计算数组的差集

array_diff_key — 使用键名比较计算数组的差集

array_diff_ukey — 用回调函数对键名比较计算数组的差集

array_diff_assoc — 带索引检查计算数组的差集

array_diff_uassoc — 用用户提供的回调函数做索引检查来计算数组的差集

代码如下:

//array_diff() 返回一个数组,该数组包括了所有在array1中        //但是不在任何其它参数数组中的值。注意键名保留不变。       <?php       $array1  =  array ( "a"  =>  "green" ,  "red" ,  "blue" ,  "red" );       $array2  =  array ( "b"  =>  "green" ,  "yellow" ,  "red" );       $result  =  array_diff ( $array1 ,  $array2 );      print_r( $result );      ?>       //结果:       Array      (      [1] => blue      )       //本函数和array_diff()相同只除了比较是根据键名而不是值来进行的。       <?php       $array1  =  array ( 'blue'  => 1,  'red'  => 2,  'green'  => 3,  'purple'  => 4);       $array2  =  array ( 'green'  => 5,  'blue'  => 6,  'yellow'  => 7,  'cyan'  => 8);      print_r( array_diff_key ( $array1 ,  $array2 ));      ?>       //结果:       Array      (      [red] => 2      [purple] => 4      )       //注意和 array_diff() 不同的是键名也用于比较。       <?php       $array1  =  array  ( "a"  =>  "green" ,  "b"  =>  "brown" ,  "c"  =>  "blue" ,  "red" );       $array2  =  array  ( "a"  =>  "green" ,  "yellow" ,  "red" );      print_r( array_diff_assoc ( $array1 ,  $array2 ));      ?>       //结果:       Array      (      [b] => brown      [c] => blue      [0] => red      ) 

array_fill — 用给定的值填充数组

array_fill_keys — Fill an array with values, specifying keys

array_filter — 用回调函数过滤数组中的单元

代码如下:

<?php       function  func_check( $i ){       return   $i  > 3 ? TRUE : FALSE;      }       $array1  =  array (2, 3, 5, 6);       $array2  =  array (NULL,  '' ,  'hello' );       $array3  =  array_filter ( $array1 ,  'func_check' );       $array4  =  array_filter ( $array2 );       //函数func_check()用来判断给定的值,返回TRUE或FALSE        //返回TRUE,则$array1中的值则会返回且键名不变,否则被过滤掉       print_r( $array3 );       //如果没有指定回调函数,则默认过滤掉array2中为等值为FALSE的成员        //进行类型转换。因此本函数常用量顾虑掉数组中的空成员。       print_r( $array4 );      ?>       //结果:       Array      (      [2] => 5      [3] => 6      )      Array      (      [2] => hello      ) 

array_flip — 交换数组中的键和值

代码如下:

//如果同一个值出现了多次,则最后一个键名将作为它的值,所有其它的都丢失了。       <?php       $trans  =  array ( "a"  => 1,  "b"  => 1,  "c"  => 2);       $trans  =  array_flip ( $trans );      print_r( $trans );      ?>       //结果:       Array      (      [1] => b      [2] => c      ) 

array_intersect — 计算数组的交集

array_intersect_assoc — 带索引检查计算数组的交集

array_intersect_uassoc — 带索引检查计算数组的交集,用回调函数比较索引

array_intersect_key — 使用键名比较计算数组的交集

array_intersect_ukey — 用回调函数比较键名来计算数组的交集

代码如下:

<?php       $array1  =  array ( "a"  =>  "green" ,  "red" ,  "blue" );       $array2  =  array ( "b"  =>  "green" ,  "yellow" ,  "red" );       $result  =  array_intersect ( $array1 ,  $array2 );      print_r( $result );      ?>       //结果:       Array      (      [a] => green      [0] => red      )       //注意array_intersect_assoc()和array_intersect()不同的是键名也用于比较。       <?php       $array1  =  array ( "a"  =>  "green" ,  "b"  =>  "brown" ,  "c"  =>  "blue" ,  "red" );       $array2  =  array ( "a"  =>  "green" ,  "yellow" ,  "red" );       $result  =  array_intersect_assoc ( $array1 ,  $array2 );      print_r( $result );      ?>       //结果:       Array      (      [a] => green      ) 

array_keys — 返回数组中所有的键名

array_values — 返回数组中所有的值

array_key_exists — 检查给定的键名或索引是否存在于数组中

代码如下:

<?php       $phpha  =  array ( 'blog' => 'http://HdhCmsTestphpfensi测试数据' ,  'home' => 'http://phpfensi测试数据' );       echo   array_key_exists ( 'blog' ,  $phpha ) ?  'Exist'  :  'Not Exist' ;       echo   '<br />' ;       echo   array_key_exists ( 'Blog' ,  $phpha ) ?  'Exist'  :  'Not Exist' ;      print_r( array_keys ( $phpha ));      print_r( array_values ( $phpha ));      ?>       //结果:        //此函数对键名区分大小写       Exist      Not Exist      Array      (      [0] => blog      [1] => home      )      Array      (      [0] => http: //HdhCmsTestphpfensi测试数据       [1] => http: //phpfensi测试数据       ) 

array_map — 将回调函数作用到给定数组的单元上

代码如下:

//注意此函数与array_filter()的区别       <?php       function  func_add( $i ){       return   $i +1;      }       $array1  =  array (1, 3, 5, 7);      print_r( array_map ( 'func_add' ,  $array1 ));      ?>       //结果:       Array      (      [0] => 2      [1] => 4      [2] => 6      [3] => 8      ) 

array_merge — 合并一个或多个数组

array_merge_recursive — 递归地合并一个或多个数组

代码如下:

<?php       $array1  =  array ( 'hello' ,  'home' => 'phpfensi测试数据' );       $array2  =  array ( 'world' ,  'home' => 'HdhCmsTestphpfensi测试数据' );      print_r( array_merge ( $array1 ,  $array2 ));      ?>       //相同键名则覆盖        //结果:       Array      (      [0] => hello      [home] => HdhCmsTestphpfensi测试数据      [1] => world      ) 

array_pop — 将数组最后一个单元弹出(出栈)

array_push — 将一个或多个单元压入数组的末尾(入栈)

代码如下:

<?php       $stack  =  array ( "orange" ,  "banana" );       array_push ( $stack ,  "apple" ,  "raspberry" );  //入栈2个成员       print_r( $stack );       array_pop ( $stack );  //出栈最后一个成员       print_r( $stack );      ?>       //结果:       Array      (      [0] => orange      [1] => banana      [2] => apple      [3] => raspberry      )      Array      (      [0] => orange      [1] => banana      [2] => apple      ) 

array_shift — 将数组开头的单元移出数组

array_unshift — 在数组开头插入一个或多个单元

代码如下:

<?php       $stack  =  array ( "orange" ,  "banana" );       array_shift ( $stack );  //移出开头第一个成员       print_r( $stack );       array_unshift ( $stack ,  "apple" ,  "raspberry" );  //开头添加2个成员       print_r( $stack );      ?>       //结果:       Array      (      [0] => banana      )      Array      (      [0] => apple      [1] => raspberry      [2] => banana      ) 

sort — 对数组排序

rsort — 对数组逆向排序

asort — 对数组进行排序并保持索引关系

arsort — 对数组进行逆向排序并保持索引关系

ksort — 对数组按照键名排序

krsort — 对数组按照键名逆向排序

代码如下:

<?php       $fruits  =  array ( "d"  =>  "lemon" ,  "a"  =>  "orange" ,  "b"  =>  "banana" ,  "c"  =>  "apple" );      asort( $fruits );      print_r( $fruits );      arsort( $fruits );      print_r( $fruits );      ksort( $fruits );      print_r( $fruits );      krsort( $fruits );      print_r( $fruits );      ?>       //结果:       Array      (      [c] => apple      [b] => banana      [d] => lemon      [a] => orange      )      Array      (      [a] => orange      [d] => lemon      [b] => banana      [c] => apple      )      Array      (      [a] => orange      [b] => banana      [c] => apple      [d] => lemon      )      Array      (      [d] => lemon      [c] => apple      [b] => banana      [a] => orange      ) 

compact — 建立一个数组,包括变量名和它们的值

extract — 从数组中将变量导入到当前的符号表

代码如下:

<?php       $home  =  'phpfensi测试数据' ;       $blog  =  'HdhCmsTestphpfensi测试数据' ;       $result  = compact( 'home' ,  'blog' );      print_r( $result );      ?>       //结果:       Array      (      [home] => http: //phpfensi测试数据       [blog] => http: //HdhCmsTestphpfensi测试数据       )      <?php       //确保$home与$blog不存在        if (isset( $home )) unset( $home );       if (isset( $blog )) unset( $blog );       $phpha  =  array ( 'home' => 'http://111cn.net' ,  'blog' => 'http://HdhCmsTest111cn.net' );      extract( $phpha );       echo   $home  .  '<br />'  .  $blog ;      ?>       //结果:       http: //phpfensi测试数据        http: //HdhCmsTestphpfensi测试数据  

in_array — 检查数组中是否存在某个值

代码如下:

<?php       $phpha  =  array ( 'home' ,  'blog' );       if (in_array( 'home' ,  $phpha )){       echo   'home is in $phpha' ;      } else {       echo   'home is not in $phpha' ;      }       echo   '<br />' ;       if (in_array( 'Home' ,  $phpha )){       echo   'Home is in $phpha' ;      } else {       echo   'Home is not in $phpha' ;      }      ?>       //in_array() 区分大小写        //结果:       home is in  $phpha       Home is not in  $phpha  

list — 把数组中的值赋给一些变量

代码如下:

<?php       $phpha  =  array ( 'http://phpfensi测试数据' ,  'http://HdhCmsTestphpfensi测试数据' );      list( $home ,  $blog ) =  $phpha ;       echo   $home  .  '<br />'  .  $blog ;      ?>       //结果:       http: //phpfensi测试数据       http: //HdhCmsTestphpfensi测试数据  

array_multisort — 对多个数组或多维数组进行排序

array_pad — 用值将数组填补到指定长度

array_product — 计算数组中所有值的乘积

array_rand — 从数组中随机取出一个或多个单元

array_reduce — 用回调函数迭代地将数组简化为单一的值

array_reverse — 返回一个单元顺序相反的数组

array_search — 在数组中搜索给定的值,如果成功则返回相应的键名

array_slice — 从数组中取出一段

array_splice — 把数组中的一部分去掉并用其它值取代

array_sum — 计算数组中所有值的和

array_udiff_assoc — 带索引检查计算数组的差集,用回调函数比较数据

array_udiff_uassoc — 带索引检查计算数组的差集,用回调函数比较数据和索引

array_udiff — 用回调函数比较数据来计算数组的差集

array_uintersect_assoc — 带索引检查计算数组的交集,用回调函数比较数据

array_uintersect_uassoc — 带索引检查计算数组的交集,用回调函数比较数据和索引

array_uintersect — 计算数组的交集,用回调函数比较数据

array_unique — 移除数组中重复的值

array_walk_recursive — 对数组中的每个成员递归地应用用户函数

array_walk — 对数组中的每个成员应用用户函数

array — 新建一个数组

count — 计算数组中的单元数目或对象中的属性个数

current — 返回数组中的当前单元

next — 将数组中的内部指针向前移动一位

each — 返回数组中当前的键/值对并将数组指针向前移动一步

end — 将数组的内部指针指向最后一个单元

key — 从关联数组中取得键名

natcasesort — 用[自然排序]算法对数组进行不区分大小写字母的排序

natsort — 用[自然排序]算法对数组排序

uasort — 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联

uksort — 使用用户自定义的比较函数对数组中的键名进行排序

usort — 使用用户自定义的比较函数对数组中的值进行排序

pos — current 的别名

prev — 将数组的内部指针倒回一位

range — 建立一个包含指定范围单元的数组

reset — 将数组的内部指针指向第一个单元

shuffle — 将数组打乱

sizeof — count 的别名

查看更多关于php中Array数组函数用法详解 - php数组的详细内容...

  阅读:40次