PHP拆分数组函数: array_chunk() 将一个数组分割成多个数组

array_chunk

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

 

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

 

说明

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

 

将一个数组分割成多个数组,其中每个数组的单元数目由 size 决定。最后一个数组的单元数目可能会少于 size 个。

 

参数

input

需要操作的数组

 

size

每个数组的单元数目

 

preserve_keys

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

 

返回值

得到的数组是一个多维数组中的单元,其索引从零开始,每一维包含了 size 个元素。

 

错误/异常

如果 size 小于 1,会抛出一个 E_WARNING 错误并返回 NULL 。

 

范例一

一维数组拆成多个数组:

  1. <?php
  2. $input_array  = array( 'a' ,  'b' ,  'c' ,  'd' ,  'e' );
  3.  print_r ( array_chunk ( $input_array ,  2 ));
  4.  print_r ( array_chunk ( $input_array ,  2 ,  true ));
  5.  ?>

 

以上例程会输出:

  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.             [0] => a
  6.             [1] => b
  7.         )    [1] => Array
  8.         (
  9.             [0] => c
  10.             [1] => d
  11.         )    [2] => Array
  12.         (
  13.             [0] => e
  14.         ))
  15. Array
  16. (
  17.     [0] => Array
  18.         (
  19.             [0] => a
  20.             [1] => b
  21.         )    [1] => Array
  22.         (
  23.             [2] => c
  24.             [3] => d
  25.         )    [2] => Array
  26.         (
  27.             [4] => e
  28.         ))

 

范例二:

二维数组拆分成多个数组:

  1. <?php
  2. $arr = array(
  3.     array(
  4.         'id' => 1,
  5.         'user_name'=>'test1'
  6.     ),
  7.     array(
  8.         'id' => 2,
  9.         'user_name'=>'test2'
  10.     ),
  11.     array(
  12.         'id' => 3,
  13.         'user_name'=>'test3'
  14.     ),
  15.     array(
  16.         'id' => 4,
  17.         'user_name'=>'test2'
  18.     ),
  19.     array(
  20.         'id' => 5,
  21.         'user_name'=>'test3'
  22.     )
  23. );
  24. var_dump(array_chunk($arr,3));

 

以上例程会输出:

  1. array (size=2)
  2.   0 =>
  3.     array (size=3)
  4.       0 =>
  5.         array (size=2)
  6.           'id' => int 1
  7.           'user_name' => string 'test1' (length=5)
  8.       1 =>
  9.         array (size=2)
  10.           'id' => int 2
  11.           'user_name' => string 'test2' (length=5)
  12.       2 =>
  13.         array (size=2)
  14.           'id' => int 3
  15.           'user_name' => string 'test3' (length=5)
  16.   1 =>
  17.     array (size=2)
  18.       0 =>
  19.         array (size=2)
  20.           'id' => int 4
  21.           'user_name' => string 'test2' (length=5)
  22.       1 =>
  23.         array (size=2)
  24.           'id' => int 5
  25.           'user_name' => string 'test3' (length=5)

 

总结:array_chunk()函数可以拆分任何的数组,不管你是一维还是二维还是N维;无非是拆分出来的结果会比原来的数组多一个array仅此而已;

    A+
发布日期:2017年06月03日 20:29:33  所属分类:PHP函数
最后更新时间:2017-06-03 20:34:51
付杰
  • ¥ 29.0元
  • 市场价:99.0元
  • ¥ 1980.0元
  • 市场价:2980.0元
  • ¥ 89.0元
  • 市场价:129.0元
  • ¥ 159.0元
  • 市场价:398.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  0   博主  0

  1. 头像 北大青岛PHP面试官 0

    给大家一个面试题,用此函数也可以解决,不知道有没有PHP高手的人能做得出来?如下图:array_chunk九宫格123456789

    • 付杰 付杰

      @北大青岛PHP面试官

      1. <?php  
      2. /** 
      3. * Created by www.fujieace.com 
      4.  * User: 付杰博客 
      5. *  */  
      6. $a=array(0=>1,1=>2,2=>3,3=>4,4=>5,5=>6,6=>7,7=>8,8=>9);  
      7. $b=array_chunk($a,3);  
      8. /*foreach ($b as $k=>$v){ 
      9.     echo $v[0],$v[1],$v[2]; 
      10. }*/  
      11. ?>  
      12. <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>  
      13. <html xmlns=“http://www.w3.org/1999/xhtml”>  
      14. <head>  
      15.     <meta http-equiv=“Content-Type” content=“text/html; charset=gb2312” />  
      16.     <title>array_chunk() 将一个数组分割成多个数组:www.fujieace.com 付杰博客</title>  
      17. </head>  
      18.   
      19. <body>  
      20. <table width=“200” border=“1”>  
      21.     <?php foreach ($b as $k=>$v){  
      22.         ?>  
      23.         <tr>  
      24.             <?php if($k==0){ ?>  
      25.                 <td>&nbsp;<?php echo $v[0]; ?></td>  
      26.                 <td>&nbsp;<?php echo $v[1]; ?></td>  
      27.                 <td>&nbsp;<?php echo $v[2]; ?></td>  
      28.             <?php }?>  
      29.         </tr>  
      30.   
      31.         <tr>  
      32.             <?php if($k==1){ ?>  
      33.                 <td>&nbsp;<?php echo $v[0]; ?></td>  
      34.                 <td>&nbsp;<?php echo $v[1]; ?></td>  
      35.                 <td>&nbsp;<?php echo $v[2]; ?></td>  
      36.             <?php }?>  
      37.         </tr>  
      38.         <tr>  
      39.             <?php if($k==2){ ?>  
      40.                 <td>&nbsp;<?php echo $v[0]; ?></td>  
      41.                 <td>&nbsp;<?php echo $v[1]; ?></td>  
      42.                 <td>&nbsp;<?php echo $v[2]; ?></td>  
      43.             <?php }?>  
      44.         </tr>  
      45.     <?php }?>  
      46. </table>  
      47. </body>  
      48. </html>