<?php
$i = $_GET['i'];
echo $i;
$values = array();
while ($i > 0)
{
$expense = $_GET['expense_' + i];
$amount = $_GET['amount_' + i];
$values[$expense] = $amount;
i--;
print_r($values);
}
?>
i表示我从上一页传递的变量集数。我正在尝试做的是将费用添加到金额中并将它们放入数组中(我只想说这个例子有3个费用和3个金额)[expense_3 =&gt; amount_3,expense_2 =&gt; amount_2,expense_1 =&gt; amount_1。变量的名称通过url成功传递,其中amount_1 = 50,amount_2 = 50,expense_1 = food,expense2 = gas等...以及$ i,我只是不知道如何将这些变量添加到数组每次。 现在有了这个代码,我得到了
4 Array([] =&gt;)Array([] =&gt;)Array([] =&gt;)Array([] =&gt;)
如果我不够清楚,我很抱歉,但我对PHP很缺乏经验。
答案 0 :(得分:0)
您获得的语法错误是因为您使用i
代替$i
- 但是 - 可以轻松解决。
您要做的是“简单”,可以使用字符串连接来完成。看起来您正在尝试使用$_GET['expense'] + i
,但不太正确。
要正确构建参数名称,您需要$_GET['expense_' . $i]
之类的内容,在这里您可以看到连接使用.
运算符的字符串 - 而不是+
运算符。
我将切换你的逻辑,使用for
循环而不是while
循环作为我的例子:
$values = array();
for ($i = $_GET['i']; $i > 0; $i--) {
$expense = $_GET['expense_' . $i];
$amount = $_GET['amount_' . $i];
$values[$expense] = $amount;
}
print_r($values);
这是遵循原始逻辑,但它将有效地反转变量(从$i
向下计数到1
)。如果您想要计数,可以将for循环更改为:
$numVariables = $_GET['i'];
for ($index = 1; $index <= $numVariables; $index++) {
$expense = $_GET['expense_' . $index];
...
答案 1 :(得分:0)
或只是serialize数组并将其传递到下一个网站,您unserialize数组 会容易得多;)