Заполнить массив значениями без цикла в PHP

Есть ли какой-либо метод (который не использует цикл или рекурсию) для создания и заполнения массива со значениями?

Если быть точным, я хочу иметь эффект

$t = array(); for($i = 0; $i < $n; $i++){ $t[] = "val"; } 

Но проще.

use array_fill() :

 $t = array_fill(0, $n, 'val'); 

Я думаю, вы можете использовать

 $array = array_pad(array(), $n, "val"); 

чтобы получить желаемый эффект.

См. Array_pad () на php.net

 $a = array(); $a[] = "value"; $a[] = "value"; $a[] = "value"; $a[] = "value"; $a[] = "value"; $a[] = "value"; $a[] = "value"; $a[] = "value"; $a[] = "value"; $a[] = "value"; $a[] = "value"; $a[] = "value"; $a[] = "value"; $a[] = "value"; $a[] = "value"; $a[] = "value"; $a[] = "value"; $a[] = "value"; $a[] = "value"; $a[] = "value"; $a[] = "value"; 

вы получаете идею

Это зависит от того, что вы имеете в виду. Есть функции для заполнения массивов, но все они будут использовать петли за кулисами. Предполагая, что вы просто хотите избежать циклов в вашем коде, вы можете использовать array_fill :

 // Syntax: array_fill(start index, number of values; the value to fill in); $t = array_fill(0, $n, 'val'); 

Т.е.

 <?php $t = array_fill(0, 10, 'val'); print_r($t); ?> 

Дам:

 Array ( [0] => val [1] => val [2] => val [3] => val [4] => val [5] => val [6] => val [7] => val [8] => val [9] => val ) 
 $a = array('key1'=>'some value', 'KEY_20'=>0,'anotherKey'=>0xC0DEBABE); 

/ * нам нужно свернуть целые массивы с сохранением ключей безопасности * /

 $a = array_fill_keys(array_keys($a),NULL); var_export($a); /*result: array( 'key1'=>NULL, 'KEY_20'=>NULL, 'anotherKey'=>NULL ); */