我正在使用array_combine
来显示某些用户选择的结果。
这是我的循环:
<?php if(get_field('sizes')) { ?>
<?php while(the_repeater_field('sizes')) { ?>
<?php echo the_sub_field('size'); ?>
<input type="text" class="quantity" name="quantity[]" value="0">
<input type="hidden" class="productinput" name="product[]" value="<?php echo the_title(); ?> - <?php echo the_sub_field('size'); ?>">
<?php } ?>
<?php } ?>
这就是我输出结果的方式
$quantities = array_combine($_POST['product'], $_POST['quantity']);
foreach ($quantities as $product => $quantity) {
if ($quantity > 0) {
$productresults = "$quantity x $product";
}
}
echo $productresults;
目前它只输出最后一个输入数量和产品名称。例如,如果我更改了5个输入,那么它只显示第5个输入。
我缺少什么来显示所有已更改的输入?
答案 0 :(得分:2)
使用下面的代码,问题是你在$productresults
循环之后输出foreach
,并且因为它回显了最后分配的值。
$productresults = "";
$quantities = array_combine($_POST['product'], $_POST['quantity']);
foreach ($quantities as $product => $quantity) {
if ($quantity > 0) {
$productresults .= "$quantity x $product ";
}
}
echo $productresults;
答案 1 :(得分:0)
将结果保存在数组中。
$quantities = array_combine($_POST['product'], $_POST['quantity']);
foreach ($quantities as $product => $quantity) {
if ($quantity > 0) {
$productresults[] = "$quantity x $product";
}
}
print_r($productresults);
答案 2 :(得分:0)
$quantities = array_combine($_POST['product'], $_POST['quantity']);
$productresults = array();
foreach ($quantities as $product => $quantity) {
if ($quantity > 0) {
$productresults[] = $quantity x $product;
}
}
echo implode(",", $productresults); // implode it with any thing you need.