我必须将多个变量绑定到另一个变量($ products_output) 现在我这样做:
$products_output = $product1_output;
$products_output .= $product2_output;
$products_output .= $product3_output;
$products_output .= $product4_output;
$products_output .= $product5_output;
// and so on till 50...
有没有办法比这更有效率? 我稍后需要在邮件功能中使用变量 $ products_output ,此变量应包含所有变量 $ product1_output ,直到 $ product50_output
更新:有关此问题的更多信息: 我正在使用$ _POST读取值,形成如下形式:
$product1_output = '';
if(!empty($_POST['product1'])) {
$product1_output = $product1.' '.$_POST['product1'].' pieces Price € '.number_format($_POST['product1']*$price[$product1], 2);
}
$product2_output = '';
if(!empty($_POST['product2'])) {
$product2_output = $product2.' '.$_POST['product2'].' pieces Price € '.number_format($_POST['product2']*$price[$product2], 2);
}
// and so on...
为了在邮件功能中使用所有这些变量,我想:将它们全部绑定到只有1个变量:
$products_output = $product1_output;
$products_output .= $product2_output;
// and so on...
所以我的问题:让我们说有500种产品,每种都有不同的价格,我必须从表格中读取并乘以产品的价格,如何在不输入长代码列表的情况下以有效的方式做到这一点?
这是以下形式的一部分:
<tr>
<td><?php echo $product1 ?></td>
<td>€ <?php echo number_format($prijs[$product1], 2); ?></td>
<td><input type="text" name="product1" size="3" /></td>
</tr>
<tr>
<td><?php echo $product2 ?></td>
<td>€ <?php echo number_format($prijs[$product2], 2); ?></td>
<td><input type="text" name="product2" size="3" /></td>
</tr>
我将这个关联数组与产品列表一起使用。
$product1 = 'Broodje Ham';
$product2 = 'Broodje Kaas';
$product3 = 'Broodje Gezond';
$product4 = 'Broodje Tonijn';
$product5 = 'Broodje Zalm';
// and so on...
//prices of products
$price = array(
$product1 => 3.5, // prijs 3.50
$product2 => 3.5,
$product3 => 3.5,
$product4 => 4.5,
$product5 => 4.5,
// and so on...
);
答案 0 :(得分:1)
您可以按如下方式编写代码。
$products_output = "";
for($i=1;$i<=50;$i++){
$prodVar = "product".$i."_output";
$products_output .= $$prodVar;
}
echo $products_output;
答案 1 :(得分:1)
答案 2 :(得分:0)
您应该尝试从数组中获取变量,因此$products_output
应该是包含所有值的数组。
一,您可以在表单输入名称中使用括号从数组开始:
<input type="text" name="product[1]" size="3" />
所以现在你将在$_POST['product']
而不是〜50个不同的变量上有一个数组。
然后,您可以遍历此数组以使用相同的键(1 ... 50)创建输出数组。
foreach ($_POST['product'] as $key => $product) {
$products_output[$key] = "...";
}
现在当你需要使用输出数组时,你可以循环使用它。
foreach ($products_output as $product) {
echo $product."\n";
}
答案 3 :(得分:0)
类似的东西:
$products_output = '';
for($i = 1; $i<=50;$i++) {
$prodx_output = 'product'.$i.'_output';
$products_output .= $$prodx_output;
}
答案 4 :(得分:0)
您正在寻找array
示例:
$products_output[1] = $product1_output;
$products_output[2] = $product2_output;
...
如果要从数组中连接所有值,可以使用implode
如果要将每个变量解析为数组,可以使用循环for
答案 5 :(得分:0)
你可以做这样的事情
$var_prefix = 'products';
$var_suffix = '_output';
$var_name = '';
for($i=1; $i<=50; $i++)
{
$var_name = $var_prefix.$i.$var_suffix;
$products_output .= $$var_name;
}
它使用variables variable,但您确实应该在代码中避免这种情况。变量$products1_output
,$products2_output, ..., $products50_output
的存在表明代码中存在一些设计问题。您可能希望使用数组而不是将一堆具有相似名称的变量组合在一起。