今回取り上げる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>
配列をグルグル回して個数を数えて別の配列に移し替えて、、、みたいなことをしてた人には便利だと思うのです。
次の関数は、未定です。