首页 > 解决方案 > 如何将两个输入组合成一个数组php

问题描述

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

他们看起来像这样

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

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

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

先是产品编号,然后是数量编号:

标签: phpwoocommerce

解决方案


正如@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;

推荐阅读