PHP 配列を指定のサイズで初期化する方法|ゼロ初期化|初期値で要素を埋める

PHPの配列を指定の初期値(デフォルト値)や指定のサイズで初期化する方法を紹介します。

今回紹介する方法を用いることで、同じ要素を持った指定の長さの配列を生成したり、配列のゼロ初期化を実現することができます。

配列の要素を全て0で初期化したい場合や、指定の値で配列の要素を埋めたい場合の参考にしてください。

目次

配列を初期値で埋める方法

array_fill関数を用いることで、指定の初期値と指定のサイズによる配列を生成することが可能になります。

$a = array_fill(0, 3, '-');
// $a == array('-', '-', '-')

これによって、同じ値の要素が連続する配列の初期化を実現することができます。

参考:array_fill関数

配列をゼロ初期化する方法

array_fill関数の第三引数に整数値0を指定すれば、配列のゼロ初期化の実現も可能となります。

array_fill(0, 3, 0); // array(0, 0, 0)

これによって、配列の要素を全て0の状態で初期化することが可能となります。

array_fill関数

array_fill関数は配列を指定値で埋める関数です。array_fillの第一引数と第二引数に配列の範囲を指定し、第三引数に初期値やデフォルト値を指定します。

array_fill(int $start_index, int $num, mixed $value): array
$start_index // 先頭のインデックス
$num         // 挿入する要素数
$value       // 各要素に埋める値
array_fill(0, 0, 0);    // array() ※ PHP 5.6.0以降有効
array_fill(0, 3, 0);    // array(0, 0, 0)
array_fill(0, 2, true); // array(true, true)
array_fill(0, 1, 'x');  // array('x')

array_fill(0, 2, 9);    // array(2) { [0] => int(9), [1] => int(9) }
array_fill(1, 2, 9);    // array(2) { [1] => int(9), [2] => int(9) }

array_fill関数のエラーについて

第二引数に指定された要素数$num0よりも小さかった場合にはE_WARNINGによるエラーが発生します。また、PHP 5.6.0未満のバージョンでは$num0を指定した際にもエラーが発生します。

// 要素数が0未満に指定された場合にはエラーが発生する
array_fill(0, -1, '-'); // Warning: array_fill(): Number of elements can't' be negative in main.php on line 2

// PHP 5.6.2より古いバージョンではエラーメッセージが若干異なる
array_fill(0, -1, '-'); // Warning: array_fill(): Number of elements must be positive in main.php on line 5

// PHP 5.6.0より古いバージョンでは0でもエラーになる
array_fill(0, 0, '-');  // Warning: array_fill(): Number of elements must be positive in main.php on line 8
広告