PHP では、配列に動的に要素を追加したりすることは非常に簡単にできますが、要素数やキー、値を最初に同じものや変更されないものの場合にはまとめて初期化するほうがわかり易い場合もあるとおもいます。そのような時に、array_fill 関数や array_fill_keys 関数を使用して配列を初期化するサンプルコードを掲載しています。
スポンサーリンク
要素数、値を指定して配列を初期化
要素数、値を指定して配列を初期化するサンプルコードになります。詳細はコメントを参照ください。
// インデックス0から始まり5要素を文字列'test'で初期化する $array1 = array_fill(0, 5, 'test'); // インデックス2から始まり2要素を数値0で初期化する $array2 = array_fill(2, 2, 0); // インデックス-5から始まり3要素を数値3.4で初期化する $array3 = array_fill(-5, 3, 3.4); var_dump($array1); var_dump($array2); var_dump($array3); /* ---------------------------------------- 出力結果 ---------------------------------------- array 0 => string 'test' (length=4) 1 => string 'test' (length=4) 2 => string 'test' (length=4) 3 => string 'test' (length=4) 4 => string 'test' (length=4) array 2 => int 0 3 => int 0 array -5 => float 3.4 0 => float 3.4 1 => float 3.4 */
開始インデックスがマイナスの場合、2つ目の要素のインデックスは0となるのは仕様とのことです。
キーと値を指定して配列を初期化
要素数と値ではなく、キーと値を指定して配列を初期化するには array_fill_keys 関数を使用して行います。
$keys = array('test', 5, 10); $array1 = array_fill_keys($keys, '男'); var_dump($array1); /* ---------------------------------------- 出力結果 ---------------------------------------- array 'test' => string '男' (length=3) 5 => string '男' (length=3) 10 => string '男' (length=3) */
参考