PHP
関数リファレンス
今回も配列操作系の関数につい記述したいと思います。
array_chunk
array_chunk関数は配列内の要素(値)を指定した数ごとに分割して
多次元配列に格納しなおすことができます。
書式
配列を分割する
$配列変数名 = array_chunk(‘配列変数名’, ‘分割する個数’, ‘キーの振り直し’);
引数
1つ目の引数には分割をして格納しなおしたい配列名、
2つ目の引数には分割の個数(要素を何個ずつに分割したいのか)、
3つ目の引数には分割をして多次元配列に格納する際の分割した要素ごとにキーを分けずにそのまま連番で振るのか
0 からキーを割り当てなおすのか true または false で指定します。
(3つ目のキーは省略することができるので省略した場合は、false を指定したことになります)
true の場合は分割した要素ごとに連番を割り当てていき、、false の場合は分割した要素ごとに 0 からキーを振りなおします。
返り値
返り値には配列の中身を指定した数で分割した多次元配列が返されます。
以下のように分割した配列を格納する配列名を指定します。
$var_chunk = array_chunk($var, 2);
使用例
以下のようにすることで配列の値を2要素ずつ多次元配列に格納することができます。
<pre> <?php $var = array('aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg'); $var_chunk = array_chunk($var, 2); var_dump($var_chunk); ?> </pre>
結果は以下のように
aaa, bbb
ccc, ddd
eee, fff
ggg
と分割されています。
最後の要素数は指定したものよりも足りなくなることもあります。
また下記のように true を指定した場合は、
要素を格納する際にキーに連番をつけて格納するという形になります。
<pre> <?php $var = array('aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg'); $var_chunk = array_chunk($var, 2, true); var_dump($var_chunk); ?> </pre>
結果は以下のようにキーが連番で割り当てられていることがわかります。