PHP関数 “array_chunk”

今回取り上げるPHP関数は

array_chunk

です。

この関数は第一引数で与えられた配列を、第二引数個分ずつ分けられた新たな配列として返戻します。

ちなみに「chunk」とは「かたまり・ぶつ切り」を意味します。

使い方を説明するために、簡単なコードを。。。

define('PAGE_COUNT', 5);

$datalist = [];
$datalist[] = ['id'=>'1', 'text'=>'foo'];
$datalist[] = ['id'=>'2', 'text'=>'boo'];
$datalist[] = ['id'=>'3', 'text'=>'bar'];
$datalist[] = ['id'=>'4', 'text'=>'baz'];
$datalist[] = ['id'=>'5', 'text'=>'hoge'];
$datalist[] = ['id'=>'6', 'text'=>'piyo'];
$datalist[] = ['id'=>'7', 'text'=>'moge'];
$datalist[] = ['id'=>'8', 'text'=>'fuga'];

$dispchunk = array_chunk($datalist, PAGE_COUNT);

ページネーション(ページング?)とかを実装するときにいいんじゃないかな、と思ったので
雑なページネーションを行うコードを書いてみる。

<?php

$page = $_GET['page'] ?? 0;
define('PAGE_COUNT', 5);

$datalist = [];
$datalist[] = ['id'=>'1', 'text'=>'foo'];
$datalist[] = ['id'=>'2', 'text'=>'boo'];
$datalist[] = ['id'=>'3', 'text'=>'bar'];
$datalist[] = ['id'=>'4', 'text'=>'baz'];
$datalist[] = ['id'=>'5', 'text'=>'hoge'];
$datalist[] = ['id'=>'6', 'text'=>'piyo'];
$datalist[] = ['id'=>'7', 'text'=>'moge'];
$datalist[] = ['id'=>'8', 'text'=>'fuga'];

$dispchunk = array_chunk($datalist, PAGE_COUNT);
$displist = $dispchunk[$page] ?? [];
?>

<style type="text/css">
table {background-color: #aaa;}
th,td {background-color: #fff; padding: 5px;}
</style>

<table>
<tbody>
<tr>
<th>ID</th>
<th>TEXT</th>
</tr>
<?php
foreach ($displist as $d) {
$id = $d['id'];
$text = $d['text'];
?>
<tr>
<td><?= $id; ?></td>
<td><?= $text; ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<a href="?page=0">前</a> |
<a href="?page=1">次</a>

配列をグルグル回して個数を数えて別の配列に移し替えて、、、みたいなことをしてた人には便利だと思うのです。

次の関数は、未定です。