在while循环中使用array_fill

时间:2014-04-01 07:07:03

标签: php

我正在尝试使用while循环和array_fill从多个记录(未知一次可能有多少记录)构建一个数组,但它没有按照我希望的方式工作。它用每条记录覆盖数组,然后在while循环完成执行后数组中的唯一数据是最后加载的记录。

$reward是被覆盖的变量。使我抓狂!我希望看到它将$reward构建到一个合并数组中,该数组由(在本例中)我正在查询的3条记录组成。但它最终成为最后发现的记录。我做错了什么?

while ($WhileLoop <= $PrizeCount) {
    print "<!-- Loop # [" . $WhileLoop . "] -->\n";
    $Prize1Credits = $PrizeRecord["Prize_Credits"];
    $print "<!-- Cred # [" . $Prize1Credits . "] -->\n";
    $Prize1ID = $PrizeRecord["Prize_ID"];
    print "<!-- ID # [" . $Prize1ID . "] -->\n";
    $reward = array_fill($ArrayIndex,$Prize1Credits,$Prize1ID);
    print "<!-- IND # [" . $ArrayIndex . "] -->\n";
    $ArrayIndex += $Prize1Credits;
    $WhileLoop++;
    $DBConnection->next_record();                
    $PrizeRecord = $DBConnection->Record;
 } 

1 个答案:

答案 0 :(得分:1)

如你所说,你正在覆盖$reward阵列。您可以在数组上使用+运算符来继续向$reward添加新记录:

在你的while循环中

$reward += array_fill($ArrayIndex,$Prize1Credits,$Prize1ID);

但为了使这段代码更具可读性,我更喜欢循环:

for ($i = 0; $i < $Prize1Credits, $i++) {
  $reward[] = $Prize1ID;
}
// no need for $ArrayIndex