Динамически заполнять массив php с помощью цикла foreach

0

Как я могу реализовать код:

$numberList3 = array();
for($i = 0; $i < 10; $i++)
{
 $numberList3[$i] = $i;
}
print_r($numberList3);

Использование цикла foreach как нет. время, которое цикл будет выполнять, определяется пользователем во время выполнения. Любое предложение.?

  • 2
    Почему foreach ? Почему не for с переменной вместо 10 ?
  • 4
    Кстати: range(0, 9) - меньше печатать.
Показать ещё 7 комментариев
Теги:
arrays
foreach

2 ответа

0

foreach() работает для объекта и массива не для одного значения.

Что вы можете сделать, создайте массив или объект из ввода пользователей.

как:

$userInput = 10;
$forEachArray = array_fill(0, $userInput, 0);

$arrayToDisplay = array();
foreach($forEachArray as $key){
   $arrayToDisplay[$key] = $key;
}
print_r($arrayToDisplay);
  • 0
    Конечно, вы можете просто сделать array_combine($forEachArray, $forEachArray) вместо foreach . Или просто сделайте range(0, $userInput) для начала.
0

Может быть, array_fill?

<?php
$n = 10;
$arr = array_fill(0,$n,0);
foreach($arr as $k => $v) {
  $arr[$k] = $k;
}
print_r($arr);

Или, как было предложено @deceze, используйте диапазон

<?php
$n = 10;
$arr = array();
foreach(range(0,$n-1) as $v) {
  $arr[$v] = $v;
}
print_r($arr);

Или когда значение совпадает с ключом, вы можете использовать только это:

<?php
$n = 10;
$arr = range(0,$n-1);
// no foreach needed
print_r($arr);
  • 3
    Если вы используете range ... почему вы снова зацикливаетесь, чтобы повторить тот же диапазон ...?
  • 0
    вы правы...
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню