Я пытаюсь создать 2D массив где $multiples[$i] = array(multiples of $i), $i = 1,2,3..
,
function getMultiples($factor, $start = 0, 10)
{
$multiples = array();
for($i = $factor + $start; $i < 10; $i+=$factor)
$multiples[] = $i;
return $multiples;
}
for($i = 2; $i < 10; $i++)
{
$start = 0 ;
$multiples[$i] = getMultiples($i, $start, 10);
}
Тем не менее, когда я var_dump
$multiples[2] = array(0 => 2)
$multiples[3] = array(0 => 3)
$multiples[4] = array(0 => 4)
...
Каждый элемент $values
был инициализирован только с первым кратным в каждом массиве.
Я проверил это с нечисловыми значениями ключа, и он отлично работает. Статические значения ключа также работают. Значение динамического ключа $i
Кажется, проблема в том, что здесь происходит?
Если вы хотите получить кратные числа, вам необходимо обновить getMultiples
следующим образом:
function getMultiples($factor, $start = 0, $max)
{
$multiples = array();
for($i = 2; $i < $max; $i++)
$multiples[] = $i*$factor;
return $multiples;
}
Что мы меняем?
$max
время for($i = $factor + $start; $i < 10; $i+=$factor)
в for($i = 2; $i < $max; $i++)
,$multiples[] = $i;
в $multiples[] = $i*$factor;
Других решений пока нет …