如何在php中将关联数组技术应用于表单?

如何在php中将关联数组技术应用于表单?,php,Php,我正在制作一个表格,我必须采用关联数组技术。用户将选择产品尺寸并输入相应的库存。一旦过帐,相应的库存将与相应的大小值相关联。 表格如下: <form action="test1.php" method="post"> <p>Choose a Size or more and enter its Stock</p> Size :<select name="articleSize[]" id="articleSize[]">

我正在制作一个表格,我必须采用关联数组技术。用户将选择产品尺寸并输入相应的库存。一旦过帐,相应的库存将与相应的大小值相关联。 表格如下:

   <form action="test1.php" method="post">
    <p>Choose a Size or more and enter its Stock</p>
    Size :<select name="articleSize[]" id="articleSize[]">
        <option value="">Select a size</option>
        <option value="xl">XL</option>
        <option value="32">32</option>
        <option value="unique">Unique</option>
        <option value="xxl">XXL</option>
    </select>
    Stock : <input type="text" name="articleStock[]" id="articleStock[]" size="8" id="stock" value="">

    <p>Choose a Size or more and enter its Stock (optional)</p>
    Size :<select name="articleSize[]" id="articleSize[]">
        <option value="">Select a size</option>
        <option value="xl">XL</option>
        <option value="32">32</option>
        <option value="unique">Unique</option>
        <option value="xxl">XXL</option>
    </select>
    Stock : <input type="text" name="articleStock[]" id="articleStock[]" size="8" id="stock" value="">
    <p>
    <input type="submit" name="submit" id="submit" value="submit">
    </p>
    </form>
我的代码正常工作,但没有更好的方法吗

结果应该是这样的

$stock_size = array(the size=> its corresponding stock);

您可以像这样消除内部
foreach

foreach ($arrSize as $size_key => $sizeValue) {
    if (!empty($arrStock[$size_key])) {
        $newArray[$sizeValue] = $arrStock[$size_key];
    }
}
如果还需要计算
0
值,您可以:

foreach ($arrSize as $size_key => $sizeValue) {
    if (!empty($arrStock[$size_key]) && (int)$arrStock[$size_key] >=0 ) {
        $newArray[$sizeValue] = $arrStock[$size_key];
    }
}
如果您确定所有值都有对:

foreach ($arrSize as $size_key => $sizeValue) {
    $newArray[$sizeValue] = $arrStock[$size_key];
}
这和

$newArray = array_combine($arrSize, $arrStock);
使用以下功能更新

function makePairs($arrSize, $arrStock)
{
    $newArray = [];

    foreach ($arrSize as $size_key => $sizeValue) {
        if (!empty($arrStock[$size_key])) {
            $newArray[$sizeValue] = $arrStock[$size_key];
        }
    }

    return $newArray;
}

// Call like
print_r(makePairs($_POST['articleSize'], $_POST['articleStock']));

您可以使用
array\u combine
来创建
键值
对数组

$arrSize = $_POST['articleSize'];
$arrStock = $_POST['articleStock'];

$stock_size = array_combine ( $arrSize ,$arrStock );

谢谢你的建议…它像我想要的那样工作…我不想返回包含空值的数组..如何将上面的内容转换为函数?因为返回值是一个函数吗?请问另一个问题,我不明白它是什么意思
翻译为函数
。我是说,如何才能成功地将上述代码作为函数。因此,如果没有输入值,函数将返回false;如果输入值,函数将返回数组。
$arrSize = $_POST['articleSize'];
$arrStock = $_POST['articleStock'];

$stock_size = array_combine ( $arrSize ,$arrStock );