php
PHP - array_chunk 함수
array array_chunk ( array $input , int $size [, bool $preserve_keys ] )
(PHP 4 >= 4.2.0, PHP 5)
배열을 size 크기만큼 조각으로 나누어 주며, preserve_keys 인자를 true로 설정하면 나누어진 조각인 키의 연속성을 가지게 합니다.
(PHP 4 >= 4.2.0, PHP 5)
배열을 size 크기만큼 조각으로 나누어 주며, preserve_keys 인자를 true로 설정하면 나누어진 조각인 키의 연속성을 가지게 합니다.
<?php
// 배열을 2조각으로 나눕니다.
$input_array = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($input_array, 2));
/*
결과:
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[0] => e
)
)
*/
// 배열을 2조각으로 나누되, 키가 연속되게 합니다.
$input_array = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($input_array, 2, true));
/*
결과:
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[2] => c
[3] => d
)
[2] => Array
(
[4] => e
)
)
*/
?>
<?php
function array_chunk_vertical($data, $columns) {
$n = count($data) ;
$per_column = floor($n / $columns) ;
$rest = $n % $columns ;
$per_columns = array( ) ;
for ( $i = 0 ; $i < $columns ; $i++ ) {
$per_columns[$i] = $per_column + ($i < $rest ? 1 : 0) ;
}
$tabular = array( ) ;
foreach ( $per_columns as $rows ) {
for ( $i = 0 ; $i < $rows ; $i++ ) {
$tabular[$i][ ] = array_shift($data) ;
}
}
return $tabular ;
}
$data = array_chunk_vertical(range(1, 31), 7) ;
foreach ( $data as $row ) {
foreach ( $row as $value ) {
printf('[%2s]', $value) ;
}
echo "\r\n" ;
}
/*
결과:
[ 1][ 6][11][16][20][24][28]
[ 2][ 7][12][17][21][25][29]
[ 3][ 8][13][18][22][26][30]
[ 4][ 9][14][19][23][27][31]
[ 5][10][15]
*/
?>
<?php
$values = range(1, 31);
$rows = array_chunk($values, 7);
echo "<table>\n";
foreach ($rows as $row) {
echo "<tr>\n";
foreach ($row as $value) {
echo "<td>" . $value . "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
/*
결과:
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
*/
?>
0 댓글