#php #arrays
#php #массивы
Вопрос:
Я просто хотел бы знать, какой самый простой способ создать инкрементный массив?
$myarray = array('test1', 'test2', 'test3', 'test4, 'test5', 'test6', 'test7', 'test8');
Конечно, я могу использовать цикл «for»…
for ($i=1;$i<=8;$i ){
$myarray[] = 'test'.$i;
}
…но знаете ли вы, могу ли я добиться большего успеха с помощью встроенной функции php (или чего-то подобного)?
Комментарии:
1. В чем смысл этого вопроса? Что не так с циклом?
2. Я думаю, что ваш способ довольно хорош. Он делает то, что ему положено, с минимальными ресурсами. Просто оставьте это так
3. Хорошо, спасибо, Дэниел, за твой ответ.
4. диапазон(‘a’, ‘z’); генерирует массив, содержащий все символы от a до z, диапазон(0, 5); массив, содержащий все числа от 0 до 5. …
Ответ №1:
Вот метод, использующий array_map()
наряду с range()
:
$array = array_map(function($n){ return "test" . $n;}, range(1, 8));
print_r($array);
Array
(
[0] => test1
[1] => test2
[2] => test3
[3] => test4
[4] => test5
[5] => test6
[6] => test7
[7] => test8
)
Я не уверен, что предпочел бы использовать это вместо простого старого цикла, подобного вашему примеру. Единственным реальным преимуществом является простота использования, range()
добавляемая через инкрементный for
цикл. Дополнительная сложность анонимной функции array_map()
, вероятно, не стоит того для такого простого случая.
Комментарии:
1. Согласен с Майклом. Смотрел на array_fill ( us2.php.net/manual/en/function . array-fill.php ), но он только предварительно заполняется статическим значением.