如何检查具有键和值的数组是否为空

时间:2014-05-10 00:39:14

标签: php arrays

我有一个在提交表单时填充的数组数组。

$groceries = array(
    "Veggies" => array( 
        "Cabbage, ear(s)" => $_POST['cabbageQTY'],
        "Carrots, bag(s)" => $_POST['carrotQTY'],
        "Tomatoes, vine(s)" => $_POST['tomatoeQTY']
    ),
    "Meats" => array( 
        "Ground Beef, lb(s)" => $_POST['groundBeefQTY'],
        "Steak, lb(s)" => $_POST['steakQTY'],
        "Pork, lb(s)" => $_POST['porkQTY']
    ),
    "Desserts" => array(
        "Ice Cream, gallon(s)" => $_POST['iceCreamQTY'],
        "Jello, box(es)" => $_POST['jelloQTY'],
        "Pie, box(es)" => $_POST['pieQTY']
    )
);

如果所有字段都为空,是否有办法检查值是否为空?

我在其他地方读到你可以尝试这样做。

!array_filter($groceries)

但我认为这适用于1维阵列。 无论如何要在二维阵列中做到这一点?如果你们能告诉我如何做到这一点,那就太棒了

提前谢谢。

2 个答案:

答案 0 :(得分:1)

首先,您可以使用<input type="text" name="cabbageQTY" required>。然后用户不能将它们留空。如果它不适合你,你可以尝试同时查找所有帖子,如果它们是否为空。

foreach ($_POST as $key => $value)
  if  $value==(null) echo $key.' value is null';

答案 1 :(得分:0)

我不确定这个问题是否得到了充分解释。如果只是从表单POST填充,那么没有NULL,它们应该作为空字符串存在。如果你想保存一个空字符串文本,如“空”,那么可能会这样做:

$blank = "Empty";
...
"Ground Beef, lb(s)" => $_POST['groundBeefQTY'] == "" ? $blank : $_POST['groundBeefQTY'],
...