显示复选框选择和未定义偏移错误的用户选择

时间:2013-06-03 12:52:58

标签: php arrays checkbox

我会通过勾选复选框显示用户选择。由于某些原因我不明白,存储用户选择的数组显示为多维数组。以下是声明数组的代码:

//declare the array
    $languages_array = array();

    //store user input into the array
    $languages_array[] = $_POST['languages'];

以下是我在数组中显示信息的地方:

print_r($languages_array);

这是我得到的输出:

  

数组([0] =>数组([0] => xhosa_word [1] => zulu_word [2] => sepedi_word))   Isizulu:ilizwi

这是正常的吗?这不应该是一维数组吗?

我也收到以下错误:

  

注意:未定义的偏移量:第53行的C:\ xampp \ htdocs \ Dictionary \ results_widget.php中的3

这是显示上述输出的代码

                            print_r($languages_array);
                            for($i=0;$i<$array_count;$i++)
                            {

                                if($languages_array[0][$i] == 'zulu_word') //this is line 53
                                    {
                                        echo 'Isizulu :'.$row['zulu_word'];
                                    }

                            }       

2 个答案:

答案 0 :(得分:1)

你的问题在于:

$languages_array = array();

//store user input into the array
$languages_array[] = $_POST['languages'];

您正在创建一个新数组,并且您正在将数组的第一个元素设置为$ _POST ['languages']。

你可能想要的是这个(你不需要原始数组声明):

//store user input into the array
$languages_array = $_POST['languages'];

更新:至于你的第二个问题......你有一个一维数组,但你在这里将它视为二维:

if($languages_array[0][$i] == 'zulu_word') //this is line 53

你可能想要这个:

if($languages_array[$i] == 'zulu_word') //this is line 53

另外,$ array_count的值是多少?您可以使用count():

$array_count = count($languages_array);

答案 1 :(得分:0)

简单分配

$languages_array = $_POST['languages'];

$ _ POST ['languages']是一组具有相同名称语言的字段。

您可以检查$ _POST ['languages']是否为数组使用var_dump($_POST['languages']);

并使用$languages_array[0]=='anything youwanna check'