2013-06-05 30 views
0

我從表單接收兩個數組。在.php文件中,我需要將每個數組的值插入表中的一列。
- 使用foreach循環訪問一個數組的元素並僅爲一列完成插入。當我爲下一個數組做同樣的事情時,我發現相應的第一列元素在每行中都是空的,而對於第一個數組,第二列元素是空的。無論如何要避免這種情況,並依次插入數組元素?
- 我知道foreach不能應用於兩個數組,所以有沒有其他方式可以同時訪問這兩個數組以便插入到表中?
謝謝。如何在php中同時從表單訪問兩個數組?

回答

0

您可以使用foreach循環:

foreach($_POST['someField_1'] as $key => $value) 
{ 
    $fieldOne = $value; 
    $fieldTwo = $_POST['someField_2'][$key]; 
} 

顯然改變_POST變量,無論你已經命名的字段。 只要你的域名被命名爲:name="someField_1[]"name="someField_2[]"你可以用這種方式使用foreach循環。

編輯

拿這個HTML的輸入表單:

Forename: <input type="text" name="forename[]"> Surname: <input type="text" name="surname[]"> 
Forename: <input type="text" name="forename[]"> Surname: <input type="text" name="surname[]"> 
Forename: <input type="text" name="forename[]"> Surname: <input type="text" name="surname[]"> 

這樣的形式讓你輸入forenames和姓氏最多3人。每個字段有完全相同的名稱:forename[]surname[]

要檢索每個值,你可以使用這個PHP:

foreach($_POST['forename'] as $key => $forename) 
{ 
    echo 'Forename: ' . $forename; 
    echo ' '; 
    echo 'Surname: ' . $_POST['surname'][$key] . '<br />'; 
} 

這工作,因爲當您提交喜歡forename[]一個字段,用方括號在最後,PHP會自動將其轉換爲數組。 $key是一個從0開始的數字,並且對於其中有很多字段。

PHP使用$key來檢索正確的字段。你也可以這樣寫你的HTML:

Forename: <input type="text" name="forename[0]"> Surname: <input type="text" name="surname[0]"> 
Forename: <input type="text" name="forename[1]"> Surname: <input type="text" name="surname[1]"> 
Forename: <input type="text" name="forename[2]"> Surname: <input type="text" name="surname[2]"> 

你看我已經把方括號之間的數字? PHP將檢測到這一點並循環訪問數組。

你甚至可以使用for循環:

for($i = 0; $i<count($_POST['forename']); $i++) 
{ 
    echo 'Forename: ' . $_POST['forename'][$i]; 
    echo 'Surname: ' . $_POST['surname'][$i]; 
} 
+0

能否請您解釋一下什麼是 「爲$鍵=> $值」 是指?我查了一下,並沒有真正理解它? – Asher

+0

well $ key是key,$ value是value,所有數組元素都是一對,一鍵一個值 – 2013-06-05 08:58:38

+0

$ key是數組索引,$ value是實際數組元素嗎? – Asher

相關問題