我正在尝试使用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;
}
答案 0 :(得分:1)
如你所说,你正在覆盖$reward
阵列。您可以在数组上使用+
运算符来继续向$reward
添加新记录:
:
$reward += array_fill($ArrayIndex,$Prize1Credits,$Prize1ID);
但为了使这段代码更具可读性,我更喜欢循环:
for ($i = 0; $i < $Prize1Credits, $i++) {
$reward[] = $Prize1ID;
}
// no need for $ArrayIndex