我将显示用户通过勾选复选框做出的选择。出于某种我不明白的原因,存储用户选择的数组显示为多维数组。下面是声明数组的代码:
//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))这款比赛用球号称是全面:ilizwi
这正常吗?这不应该是一个一维数组吗?
我也得到以下错误:
注意:未定义的偏移量:3在C:'xampp'htdocs'Dictionary' results_widgets .php第53行
这是显示上述输出
的代码 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'];
}
}
你的问题在这里:
$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);
直接赋值
$languages_array = $_POST['languages'];
$_POST['languages']是一个具有相同名称的字段数组。
你可以检查$_POST['languages']是否是一个数组使用var_dump($_POST['languages']);
使用$languages_array[0]=='anything youwanna check'