如何将两个输入组合成一个数组php

时间:2018-05-24 18:08:14

标签: php woocommerce

我有一个包含相同数量输入名称和产品ID输入名称的多个产品的css表。每个ID和数量都将是不同的值

他们看起来像这样

<input type="number" name="quantity" value="0">
<input type="hidden" name="prod_id" value="<?php echo $product_id; ?>">

我的问题是如何将两个值都推送到一个看起来像这样的数组/字符串

 $product_ids = '150:2,152:4';

首先是产品ID,然后是:

之后的数量编号

1 个答案:

答案 0 :(得分:1)

正如@UlyssesMarx在评论中所述,您应该修改HTML输入字段的结构以支持多个数量输入。

<input type="number" name="quantity[<?php echo $product_id; ?>]" value="0">

在这种情况下,您不需要产品ID的隐藏输入字段,因为它将存储在数量字段的名称中。

在后端,您可以通过PHP解析此数据。

$quantities = $_POST['quantity']; //make sure to sanitize and validate!

foreach( $quantities as $product_id => $qty ) {
   //do whatever you would like with this data
}

如果你仍然想要你指定的字符串中的数据,一种方法是:

$quantities = $_POST['quantity']; //make sure to sanitize and validate!
$data = []; //empty array to hold restructured data

foreach( $quantities as $product_id => $qty ) {
    $data[] = $product_id . ":" . $qty;
}

//now combine the array
$string = implode( ',', $data );

echo $string;