1

重複の可能性:
アレイを他の4つのアレイにスライスします

アレイは、以下を使用して3つの小さなアレイに分割できます。

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

問題:しかしcount($things)、配列内の項目の数をで均等に分割できない場合、 4つの小さな配列3になってしまいます。たとえば、配列に10個の要素がある場合、に入力すると、3個の要素の3つの配列と、1個の要素を含む4番目の配列が得られます。$thingsarray_chunk()

配列を3つの小さな配列に分割するにはどうすればよいですか。たとえば、上記の例のような状況では、次のようになります。

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

基本的に私がしていることは、大きな配列を取り、それを3列にできるだけ均等に表示することです。アルファベット順にソートされているため、順序が重要です。

4

2 に答える 2

6

を試しceil(count($things) / 3)て、分割点が切り上げられるようにします。これにより、11項目の配列の場合は3/3/3/2ではなく4/4/3になります。

于 2012-10-28T16:51:13.457 に答える
3

この重複した質問に対する私が与えた答えを確認し、次のように変更4して3ください。

$groups = array_chunk($all,(int)ceil(count($all)/3));
于 2012-10-28T17:24:07.127 に答える