最近使った便利なコードをメモ。
PHPの2次元配列を1次元配列に変換する場合、foreach文などループを使った処理が真っ先に考えられるが、array_reduce関数を使った以下のコードで一撃で変換することができる。
$arr = array(
array(1, 2, 3),
array(1, 2, 3),
array(1, 2, 3),
);
$result = array_reduce($arr, 'array_merge', array());
array_reduce関数は第一引数に指定した配列の各要素に対し、第二引数で指定するコールバック関数を繰り返し実行するもので、この場合array_merge関数を各要素に繰り返すことで一つの配列(つまり1次元配列)に変換することができる。
なお、第三引数のarray()は、コールバック関数にarray_mergeを使う場合必須となる。