【发布时间】:2017-05-15 20:57:16
【问题描述】:
我有一个 php 数组,我想使用循环将其拆分成更小的块。
一旦具有相同值的所有元素都被推入块中,我想使用该块做某事,然后继续循环并设置下一个块,直到原始 $array 的所有内容都已被使用。
public function adjust($array){
// $array = [1, 1, 2, 2, 8, 8, 8, 9, 20]
$chunk = array()
for ($i = 0; $i < sizeof($array); $i++){
// code here
// result should be $chunk = [1, 1]
// use $chunk for something, reset its contents,
// continue loop until chunk is [2, 2],
// rinse and repeat
}
}
我不需要循环,我只需要能够将$array 分割成 5 个$chunks(对于这个特定示例),以便能够处理数据。
没有一堆 if/else 子句,有没有更简单的方法来解决这个问题?
【问题讨论】:
-
你想要这样的东西吗?
[[1, 1], [2, 2], [8, 8, 8], [9], [20]] -
不,没必要。基本上,底部的答案是好的,但理想情况下我不想处理循环外的最后一块。谢谢。
-
我认为使用一些库更容易。你用过 Laravel 和它的集合吗?我认为它很棒!你可以在外部和 Laravel/Lumen 使用这个项目 github.com/tightenco/collect 和你仍然使用所有 laravel 文档!
-
我会调查一下,谢谢。