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