我会通过勾选复选框显示用户选择。由于某些原因我不明白,存储用户选择的数组显示为多维数组。以下是声明数组的代码:
//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'];
}
}
答案 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'