Есть ли какой-либо метод (который не использует цикл или рекурсию) для создания и заполнения массива со значениями?
Если быть точным, я хочу иметь эффект
$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 ); */