name="qty<?php echo $key?>"
foreach ($_POST as $items => $value)
{
// check qty >1???
echo $key, ' => ', $value, '<br />';
}
如何仅显示[qty1] =&gt;值,[qty2] =&gt;值...&0;
的值的项目答案 0 :(得分:1)
为什么不在循环中添加一个检查,然后得到这样的过滤输出:
如果您的POST请求不是多维数组,请使用此命令:
$output = array_filter($_POST, function ($value, $key) {
// check your keys start with 'qty' and its value is greater than one
return strpos($key, 'qty') === 0 && $value > 1;
}, ARRAY_FILTER_USE_BOTH);
// display final output
print_r($output);
如果你的POST请求是多维数组,那么请使用:
$output = array(); // declare a blank array to store filtered output
foreach($_POST as $row)
{
if (is_array($row))
{
// this code is because qty is dynamic and we need to check it for all.
foreach($row as $key => $value)
{
if ("qty" == substr($key, 0, 3) && $value > 0)
{
$output[] = $row;
}
}
}
}
// display final array.
print_r($output);
希望这会有所帮助!
答案 1 :(得分:1)
只需使用array_filter和print_r的组合。
$_POST = [
'notme' => 12,
'qty1' => 1,
'qty2' => 20,
'qty3' => -1,
'qty4' => 0,
'qty5' => 30
];
print_r(
array_filter($_POST, function ($value, $key) {
// check key starts with 'qty' and its value is greater than one
return strpos($key, 'qty') === 0 && $value > 1;
}, ARRAY_FILTER_USE_BOTH)
);
// Array ( [qty2] => 20 [qty5] => 30 )