2012-10-28 231 views
0

可能重複:拆分數組分成3個陣列

$things = array('...'); // an array containing 9 things 
$things = array_chunk($things, count($things)/3); 

問題::然而
Slice an array into 4 other arrays

陣列可以使用被分成3點較小的陣列當count($things)數組中的項目數量不能除以3,我最終與更小的陣列。例如,如果我在數組$things中有10個元素,則將其輸入到array_chunk()中會給我3個3元素的數組,以及包含1個元素的第4個數組。

我如何可以把一個數組成3點較小的陣列,例如,如果我有一個情況如上面的例子中,我將結束與

count($things[0]) == 4 
count($things[1]) == 4 
count($things[2]) == 2 

Bascially我在做什麼是有一個大數組並儘可能相同地顯示爲3列。它按字母順序排序,所以順序很重要。

+0

回合'$ N/3'起來,使用'小區()'例如。 – mario

+0

感謝馬里奧它的作品!我相信馬里奧回答它:) – Nyxynyx

回答

5

嘗試ceil(count($things)/3),所以分割點被四捨五入。那會給你(比如說)4/4/3而不是3/3/3/2給11項數組。

+0

感謝它的工作 – Nyxynyx

1

檢查我對這件duplicate question答案,並改變43

$groups = array_chunk($all,(int)ceil(count($all)/3));