2013-06-03 82 views
0

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

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

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

以下是其中I从阵列显示信息:

print_r($languages_array); 

这是输出我得到:

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

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

我也得到了以下错误:

Notice: Undefined offset: 3 in C:\xampp\htdocs\Dictionary\results_widget.php on line 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']; 
            } 

          }  

回答

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); 
+0

你知道我为什么会得到偏移误差吗? – user1783675

+0

解决了多维度问题:) – user1783675

+0

更新了我的答案以解决您的第二个问题 –

0

只需要给

$languages_array = $_POST['languages'];

$ _ POST [ '语言']是同名语言字段的数组..

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

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