获取特定$ _POST数组的值

时间:2017-04-29 16:33:59

标签: php

name="qty<?php echo $key?>"



foreach ($_POST as $items => $value)
{
  // check qty >1???
echo $key, ' => ', $value, '<br />';
}

如何仅显示[qty1] =&gt;值,[qty2] =&gt;值...&0;

的值的项目

2 个答案:

答案 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_filterprint_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 )