php 数组分割成多个数组

一个一维数组有3000个元素怎么把它分割成3个1000个元素的一维数组array(0=>q,1=>q,2=>q,...........3000=>q);成为:array(... 一个一维数组有3000个元素
怎么把它分割成3个1000个元素的一维数组

array(0=>q, 1=>q, 2=>q, ...........3000=>q);
成为:
array(0=>q, 1=>q, 2=>q, ...........1000=>q);
array(1001=>q, 1002=>q, 1003=>q, ...........2000=>q);
array(2001=>q, 2002=>q, 2003=>q, ...........3000=>q);

请大神帮忙
最好写个方法,谢谢。给加分
为了解决oracle ,sql ,in 的问题

谢谢三位大神,你们写的都很好
展开
 我来答
戰为瘸子六
2018-04-10 · TA获得超过1.5万个赞
知道小有建树答主
回答量:36
采纳率:4%
帮助的人:7107
展开全部

1.系统函数:
array_chunk() 把一个数组分割为新的数组块
array_slice()  返回数组中被选定的部分等,更多的参考w3school
http://www.w3school.com.cn/php/php_ref_array.asp,程序员要学会用手册
2.自定义函数:
当系统函数不能满足实际需求时,根据实扮模际的需求,自己重卜仿新定义函数
function(){}

3、 计算参数的数组: 

参数1是传入数组,参数2是每个分数组元素数量//调用方法返回的是二维数组,可以用数组下标取出你需要的一维数组。 

  • function arr_oper ( $arr, $num ) { 

  • $count = count ( $arr ); 

  • for ( $i = 0; $i < $count / $num; $i ++ ) {$return_arr[$i] = array_slice ( $arr, $num * $i, $num }

    4、利用:$sliceArr = arr_oper( $arr, 1000 );的公式:  

  • $sliceArr[0],$sliceArr[1]...... 

  • 这个根据你的要求弄就行,因为方法只能返回一个数组,所以我把拆分之后的几个子数组合成了一个数组一起return了。 

  • 这个方法会比较厅弊缓灵活,比如我把3000个元素的数组,500个一个拆分,就会返回一个有6个子数组的数组。 

木同生活
推荐于2018-02-27 · 技术宅,对待技术十分认真。
木同生活
采纳数:172 获赞数:568

向TA提问 私信TA
展开全部
$a = array(1=>'a',2=>'b',3=>'c',4=>'d',5=>'e',6=>'f',7=>'g',8=>'h',9=>'i');
function sliceArr($a){
$num = 3;//截取的长度,我给的例子默认为3,你换成1000就OK了差拦。
$a1 = array_slice($a,0,$num);//你写成($a,0,$num)
print_r($a1);
echo "<br/>";
$a2 = array_slice($a,3,$num);//你写成($a,1000,$num) 可能不准,不过就是999或者1001,你可以试一下蠢好
print_r($a2);
echo "<br/>";
$a3 = array_slice($a, 6,$num);//带庆铅你写成($a,2000,$num)
print_r($a3);
}
sliceArr($a);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
abc900223
2016-01-22 · 知道合伙人互联网行家
abc900223
知道合伙人互联网行家
采纳数:111 获赞数:1105
毕业于山东某高校,理工学士学位。热爱互联网行业。 格言: 天助自助者!!

向TA提问 私信TA
展开全部
php数组的分割需要根据实际情况进行原数组提取或合理拆分;
方法:
1.系统函数:
array_chunk() 把一个数组分割缺迅为新的数组块
array_slice() 返回数组中被选定的部分等,更多的参考w3school
http://www.w3school.com.cn/php/php_ref_array.asp,程序员要学会用手册
2.自定义函数
当系统函数不能满足实际需求时,根据实际的需求,物敏自己重新伏蚂此定义函数
function(){}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-07-15
展开全部
$arr=array();
for($i=1;$i<顷脊=3000;$i++){
$arr[$i-1]=$i;
}
$one=array();
$two=array();
$three=array();
$oneindex=0;
$twoindex=0;
$threeindex=0;
for($j=0;$j<count($arr);$j++){
if($j<野渣1000){
$one[$oneindex]=$arr[$j];
$oneindex++;
}else if($j>=1000&&$j<2000){
$two[$twoindex]=$arr[$j];
$twoindex++;
}else if($j>=2000&&$j<3000){
$three[$threeindex]=$arr[$j];
$threeindex++;
}
}
echo count($one);
echo count($two);
echo count($three);
print_r($three);


给你一个例子了,这颂乎悄样就可以

追问
恩,我的3000是不固定的呢
追答
那怎么个不固定法呢,要是你的个数不固定,你可以把if()里面1000,2000,3000也改成变量,你想多少分一组,传递一个变量数字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
look_earth7
2019-07-09
知道答主
回答量:1
采纳率:0%
帮助的人:723
展开全部
$array = range(0,4999);
function fenge($arr,$group)
{
$newArr = [];
for ($i=0; $i <升桐 count($arr); $i++) {
$newArr[floor($i/吵液坦埋迅$group)][$i] = $arr[$i];
}
return $newArr;
}
echo '<pre>';
print_r(fenge($array,500));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式