一、第一种解法

<?php
//把一个数组分成几个数组
//$arr 是数组
//$num 是数组的个数
function partition($arr,$num){
//数组的个数
$listcount=count($arr);
//分成$num 个数组每一个数组是多少个元素
$parem=floor($listcount/$num);
//分成$num 个数组还余多少个元素
$paremm=$listcount%$num;
$start=0;
for($i=0;$i<$num;$i++){
$end=$i<$paremm? $parem+1:$parem;
$newarray[$i]=array_slice($arr,$start,$end);
$start=$start+$end;
}
return $newarray;
} $arr=array(1,3,4,5,6,7,8,9,2);
print_r(partition($arr,3));

二、另外一种解法是模拟现实生活中怎样把一个一维数组拆分成n个元素的多维数组。代码入下。

  function get_array_columns($array, $columns){
$columns_map=array();
for($i=0;$i<$columns;$i++){
$columns_map[]=0;
}
$array_length=count($array);
$position=0;
while($array_length>0){
$columns_map[$position]++;
//这个地方格外注意,$position与$columns比較
$position=($position<$columns-1)?++$position:0;
$array_length--;
}
foreach ($columns_map as $val){
$newarray[]=array_splice($array,0,$val);
}
return $newarray;
} $arr=array(1,2,3,4,5,6,7,8);
print_r(call_user_func_array('get_array_columns',array($arr,2)));

最新文章

  1. 给锁住的行解锁(oracle)
  2. view--4种Android获取View宽高的方式
  3. jquery mobile转场时加载js失效(转)
  4. SSI框架中配置log4j
  5. Raid1源代码分析--读流程(重新整理)
  6. 【SQL语句】 - Ctrl+3 查询表属性的存储过程 [sp_select_talberowName]
  7. Storm集群中执行的各种组件及其并行
  8. MySQL replace into 说明(insert into 增强版)
  9. 结合apache安装subversion
  10. 微信小程序版本自动更新弹窗提示
  11. Vue-devtools 安装浏览器调试
  12. grafana安装使用及与zabbix集成
  13. pyspider示例代码:解析JSON数据
  14. js判断元素是否是disable状态
  15. layer.conifrm 非阻塞执行 ztree删除节点 问题
  16. /dev/null 2&gt;&amp;1 什么意思
  17. 【摄像头】Global Shutter(全局快门)与Rolling Shutter(卷帘快门)的区别与比较
  18. java CyclicBarrier的介绍和使用
  19. seekg()/seekp()与tellg()/tellp()的用法详解
  20. 什么是kafka以及如何搭建kafka集群?

热门文章

  1. PLC学习资料
  2. IE 浏览器在地址栏输入中文字符,发送get请求报400错误的问题
  3. jdbc 实现分页
  4. linux使用crontab实现PHP执行计划定时任务
  5. swift VS NSObject
  6. tee命令用法
  7. vue基础---条件渲染
  8. 牛客多校Round 10
  9. 巩固JavaSE基础--IDEA完成实战项目
  10. share——Alpha版(内部测试版)发布