Заполните массив значениями без цикла в PHP
есть ли какой-либо метод (который не использует цикл или рекурсию) для создания и заполнения массива значениями?
чтобы быть точным, я хочу иметь эффект
$t = array();
for($i = 0; $i < $n; $i++){
$t[] = "val";
}
но проще.
5 ответов
$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 = array_pad(array(), $n, "val");
чтобы получить желаемый эффект.
посмотреть array_pad () ВКЛ php.net
Это зависит от того, что вы имеете в виду. Есть функции для заполнения массивов, но все они будут использовать циклы за кулисами. Предполагая, что вы просто хотите избежать циклов в код код, вы можете использовать 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);
/* нам нужно аннулировать весь массив с помощью keep safe keys*/
$a = array_fill_keys(array_keys($a),NULL);
var_export($a);
/*result:
array(
'key1'=>NULL,
'KEY_20'=>NULL,
'anotherKey'=>NULL
);
*/