配列(リスト)を一定の数ごとにグルーピングするには (grouped) 2015/01/22
関連
Scala 2013/05/06
Signature:
PHP 2015/01/08
array_chunk
関数を使う。
$arr = array('abc', 'def', 'ghi', 'jkl', 'mno', 'pqr', 'stu');
var_export(array_chunk($arr, 2));
// 出力結果
// array (
// 0 =>
// array (
// 0 => 'abc',
// 1 => 'def',
// ),
// 1 =>
// array (
// 0 => 'ghi',
// 1 => 'jkl',
// ),
// 2 =>
// array (
// 0 => 'mno',
// 1 => 'pqr',
// ),
// 3 =>
// array (
// 0 => 'stu',
// ),
// )
array_chunk
関数 | PHP Manual
http://php.net/manual/ja/function.array-chunk.php
Ruby 2013/07/27
以下のような関数で同様のことができる。
def grouped(src, size)
dst = []
index = 0
len = dst.size
while index < len do
group_data = (0 .. (size - 1)).map do |i|
src[index + i]
end
dst.push(group_data)
index = index + size
end
return dst
end
Railsの拡張を使った例
%w(abc def ghi jkl mno pqr).in_groups_of(2).each do |pair|
p pair
end
# 出力結果
# ['abc', 'def']
# ['ghi', 'jkl']
# ['mno', 'pqr']