Пары ключ-значение PHP, где ключ — это динамическая переменная, а значение — это массив?

Я пытаюсь создать 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 Кажется, проблема в том, что здесь происходит?

2

Решение

Если вы хотите получить кратные числа, вам необходимо обновить getMultiples следующим образом:

function getMultiples($factor, $start = 0, $max)
{
$multiples = array();

for($i = 2; $i < $max; $i++)
$multiples[] = $i*$factor;

return $multiples;
}

Что мы меняем?

  1. Петля 10 или $max время for($i = $factor + $start; $i < 10; $i+=$factor) в for($i = 2; $i < $max; $i++),
  2. Найти несколько $multiples[] = $i; в $multiples[] = $i*$factor;
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]