array_chunk是PHP中的一个数组分割函数,是将一个数组分割为多个数组块

我们可以把它理解卖豆腐的商人把一整块大豆腐切割为一个一个的小块来进行售卖

这个函数需要三个参数:

  被切割的数组(必需)

  被切割为多少块(必需)

  是否保留原数组索引关系true,flase默认为flase(可选)

注意:被切割后的数组,数组块内的数组不受是否保留索引关系影响(此处为二维数组情况考虑)

小技巧:当被切割个数为1时可以实现一维数组转二维数组操作

    可根据需求来确定是否保留索引关系

1.当被切割块数为1时(不保留原数组索引关系)

<?php
$key = array('a' => 'boom' , 'b' => 'tom' , 'c' => 'jack');
$ret = array_chunk($key,1);
print_r($ret); //run result
Array
(
[0] => Array
(
[0] => boom
) [1] => Array
(
[0] => tom
) [2] => Array
(
[0] => jack
) )

2.当被切割块数为1时(保留原数组索引关系)

<?php
$key = array('a' => 'boom' , 'b' => 'tom' , 'c' => 'jack');
$ret = array_chunk($key,1,flase);
print_r($ret); //run result Array
(
[0] => Array
(
[a] => boom
) [1] => Array
(
[b] => tom
) [2] => Array
(
[c] => jack
) )

3.当被切割为多个数组块时

 最后一个数组块的数目可能会少几个,这跟被切割为多少块有关

<?php
$key = array('a' => 'boom' , 'b' => 'tom' , 'c' => 'jack');
$ret = array_chunk($key,2);
print_r($ret); //run result Array
(
[0] => Array
(
[0] => boom
[1] => tom
) [1] => Array
(
[0] => jack
) )

本文为茴香饺子博客的原创,欢迎转载,转载请注明出处  

茴香饺子博客http://www.cnblogs.com/hxjz/

深度解析PHP数组函数array_chunk的更多相关文章

  1. 深度解析PHP数组函数array_combine

    前些天写了一篇关于array_merge的函数解析. 今天来看一个新的函数array_combine() 此函数一共有两个参数,一个是合并后数组的键名,另一个为键值. 注意:合并后数组的键名放在第一个 ...

  2. 深度解析PHP数组函数array_slice

    看到array_slice()这个函数让我想起了VFP中的range这个范围取值的子句 这个函数一共有四个参数: 被取值的数组(必需) 取值的起始位置(必需) 取值的终止位置,如果不填写默认到数组最后 ...

  3. 深度解析PHP数组函数array_merge

    很久之前就用到过这个函数,只不不过是简单的用用而已并没有做太深入的研究 今天在翻阅别人博客时看到了对array_merge的一些使用心得,故此自己来进行一次总结. array_merge是将一个或者多 ...

  4. C#解析JSON数组

    方式一 第一步:使用前,需下载:Newtonsoft.Json.dll 没有的,请到我百度云盘下载 链接:https://pan.baidu.com/s/1JBkee4qhtW7XOyYFiGOL2Q ...

  5. 第37课 深度解析QMap与QHash

    1. QMap深度解析 (1)QMap是一个以升序键顺序存储键值对的数据结构 ①QMap原型为 class QMap<K, T>模板 ②QMap中的键值对根据Key进行了排序 ③QMap中 ...

  6. PHP函数积累总结(Math函数、字符串函数、数组函数)

    Math函数:10个较常用标红.abs — 绝对值acos — 反余弦acosh — 反双曲余弦asin — 反正弦asinh — 反双曲正弦atan2 — 两个参数的反正切atan — 反正切ata ...

  7. STL库list::sort()实现深度解析

    原创,转载请注明出处:STL库list::sort()实现深度解析 list模板的定义以及一些基本成员函数的实现这里我就不赘述了,还不清楚的同学可以到网上查找相关资料或者直接查看侯捷翻译的<ST ...

  8. 深度解析javascript中的浅复制和深复制

    原文:深度解析javascript中的浅复制和深复制 在谈javascript的浅复制和深复制之前,我们有必要在来讨论下js的数据类型.我们都知道有Number,Boolean,String,Null ...

  9. java8Stream原理深度解析

    Java8 Stream原理深度解析 Author:Dorae Date:2017年11月2日19:10:39 转载请注明出处 上一篇文章中简要介绍了Java8的函数式编程,而在Java8中另外一个比 ...

随机推荐

  1. 极化SAR图像基础知识(2)

    本篇主要关注物理含义 1.极化 电磁波在传播时,传播的方向和电场.磁场相互垂直,我们把电波的电场方向叫电波的极化.(i.e.依据电场E的方向来定义电磁波的极化). 如果电场矢量端点随时间变化的轨迹是一 ...

  2. TCP基础知识 复习

    前言 说来惭愧,大二时候学的计算机网络好多都不太记得了,不过还好有认真学过,捡起来也挺快的,就是对于现在业界中使用的网络算法的不是很懂: 1 TCP报文段结构 1.1 序号和确认号 序号,是报文段首字 ...

  3. start with connect by prior 递归查询用法,很实用

    当开发过程需要查询上下级机构类似的树形机构,还有就是查询当前等级下的所有所属节点 这个子句主要是用于B树结构类型的数据递归查询,给出B树结构类型中的任意一个结点,遍历其最终父结点或者子结点. 先看原始 ...

  4. 笔记:查看linux系统开机时间

    [root@localhost ~]# uptime -s -- :: 通过命令uptime -s 查看系统开机时间

  5. linq 为什么要用linq linq写法

    LINQ,语言集成查询(Language Integrated Query)是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作 ...

  6. eharts入门篇一

    1.导入文件样式 从官网下载界面选择你需要的版本下载,根据开发者功能和体积上的需求,我们提供了不同打包的下载,如果你在体积上没有要求,可以直接下载完整版本. 2,引入 ECharts 文件  < ...

  7. JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(二)

    一  前言 本文是上一篇博客JWebFileTrans:一款可以从网络上下载文件的小程序(一)的续集.此篇博客主要在上一篇的基础上加入了断点续传的功能,用户在下载中途停止下载后,下次可以读取断点文件, ...

  8. js事件相关面试题

    说是面试题,其实也相当于是对js事件部分知识点的一个总结.简单内容一笔带过,了解详情我都给出了参考链接,都是之前写的一些相关文章.JavaScript本身没有事件模型,但是环境可以有. DOM:add ...

  9. poj2739尺取法+素数筛

    Some positive integers can be represented by a sum of one or more consecutive prime numbers. How man ...

  10. SVN常见问题总结一

    注意 转载须保留原文链接(http://www.cnblogs.com/wzhiq896/p/6828776.html  ) 作者:wangwen896 SVN是Subversion的简称,是一个开放 ...