从“ custom_”开始计数$ _POST答复

时间:2019-01-20 22:14:31

标签: php arrays post

在我的网站上,我们可以创建带有未知数量的自定义字段的产品。要将数据插入数据库,我想知道以“参数”开头的输入数(在下面的数据中)。

如何计算以“ parameter”开头的POST结果? 谢谢

array(6) {
    ["quantity"]=> string(8) "200"
    ["price"]=> string(4) "150"
    ["product_supplier"]=> string(4) "1"
    ["parameter1"]=> string(4) "text"
    ["parameter2"]=> string(7) "Exemple"
    ["parameter3"]=> string(4) "text"
}

1 个答案:

答案 0 :(得分:0)

使用array_keys获取数组的键,然后使用foreacharray_reduce进行迭代,例如

$count = 0;
foreach (array_keys($array) as $key) {
    if (strpos($key, 'parameter') === 0) $count++;
}
echo "$count parameters\n";

$count = array_reduce(array_keys($array), function ($c, $v) { 
    if (strpos($v, 'parameter') === 0) $c++; 
    return $c; },
    0);
echo "$count parameters\n";

输出(用于您的示例数据):

3 parameters

Demo on 3v4l.org

您可能想考虑使用PHP的数组表示法来命名参数输入

<input type="text" name="parameters[]" />

然后您所有的参数输入将在$_POST['parameters']中显示为数组,您可以通过以下方式轻松获得计数

echo count($_POST['parameters']);

您也可以使用简单的foreach来简化参数的处理:

foreach ($_POST['parameters'] as $parameter) {
    // do stuff
}