2013-06-03 58 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'