例如有这样一个一维数组
$arr = array(4, 23, 56, 1, 9, 5, 2, 67, 34, 100, 78);
想要将这个一维数组分割成下图这样包含3个连续元素的二维数组
这要怎么操作?下面给大家介绍两种将一维数组分割成包含指定个数元素二维数组的方法。
方法一:利用array_slice()函数截取数组
实现思想:
使用array_slice()函数根据数组下标来截取指定长度的数组片段,会返回截取后的子数组。
因为二维数组的内层每个都包含3个元素,因此使用array_slice()开始分割数组的位置分别为0、3、6、9;
使用for循环控制开始位置(数组下标),i和下标的关系 i*3
:
当i=0,则开始位置为0
当i=1,则开始位置为3
当i=2,则开始位置为6
当i=3,则开始位置为9
下面给出实现代码:
<?php function SplitArray($arr,$n){ for ($i = 0; $i <= $n; $i++) { $res[] = array_slice($arr, $i * $n, $n); } var_dump($res); } $arr = array(4, 23, 56, 1, 9, 5, 2, 67, 34, 100, 78); SplitArray($arr,3); ?>
输出结果:
方法二:使用array_chunk() 函数分割数组
<?php $arr = array(4, 23, 56, 1, 9, 5, 2, 67, 34, 100, 78); $res = array_chunk($arr,3); var_dump($res); ?>
输出结果:
下面给大家介绍一下array_chunk() 函数。
array_chunk(array,size,preserve_keys)
函数把一个数组分割为新的数组块,其中可选参数 size
规定每个新数组块包含多少个元素,可选参数 preserve_keys
规定是否保留原始数组中的键名(默认值为false,不保留)。文件名长度
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理