0

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

//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] => sepdi_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'];
                                    }

                            }       
4

2 回答 2

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);
于 2013-06-03T12:56:37.060 回答
0

只需分配

$languages_array = $_POST['languages'];

$_POST['languages'] 是具有相同名称语言的字段数组。

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

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

于 2013-06-04T11:35:32.697 回答