如何初始化由表单的post方法创建的2d数组

时间:2014-05-14 08:17:16

标签: php html arrays

我有一个具有一个类别字段的表单。用户可以选择0个或更多,然后选择1个类别(使用复选框)。 这些类别存储在cat变量中,或者我按照

获取所选类别的数量
<input type="checkbox" name="cats[]" id="3" value="1"> 1

$num=count($_POST['cats']);


问题是当没有选择类别时,没有初始化cat数组,因此返回错误。

所以问题是,如果没有类别选择,$ num的值变为0,值$_POST['cats'][0]="No category"

3 个答案:

答案 0 :(得分:2)

您应该检查$_POSTS数组是否具有cats键:

if(isset($_POST['cats']))
   //do things here with cats :)

另一种方法是:

if(array_key_exists('cats', $_POST))
   //do things here with cats :)

答案 1 :(得分:1)

如果你这样做:

if (!isset($_POST['cats'])) {
    $_POST['cats'] = array();
}

然后$_POST['cats']将始终是一个数组。但如果用户没有选择任何内容,则为空数组

答案 2 :(得分:1)

if(empty($_POST['cats'])){
    $num=0;
    $_POST['cats'][0]="No category";
}

但是,您应该避免自行修改$ _POST数组,将内容复制到另一个数组之前并修改它。