使用array_combine显示用户输入结果

时间:2013-02-15 09:17:49

标签: php arrays

我正在使用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个输入。

我缺少什么来显示所有已更改的输入?

3 个答案:

答案 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.