PHP键值对,其中键是动态变量,值是数组?

时间:2016-10-23 08:39:35

标签: php arrays multidimensional-array keyvaluepair

我正在尝试创建一个$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似乎出现了问题,这里发生了什么?

1 个答案:

答案 0 :(得分:0)

如果您想获得一个数字的倍数,您需要更新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;