2012-09-14 19 views
1

我有一個包含5個輸入字段的表單。每個字段都有一個數組名稱,因爲可能會同時創建多個記錄。帶有數組名稱的多個輸入

例子:

<input type="text" name="name[]" /> 
<input type="text" name="surname[]" /> 
<input type="text" name="address[]" /> 
<input type="text" name="phone[]" /> 
<input type="text" name="age[]" /> 

我的問題是如何用php管理多個名稱數組?我知道如何用單個數組(複選框選中的情況下),但我在這裏卡住了。

$all[] = $_POST["name"]; 
$all[] = $_POST["surname"]; 
$all[] = $_POST["address"]; 
$all[] = $_POST["phone"]; 
$all[] = $_POST["age"]; 
??? 

foreach {....??? 

回答

3

每個輸入將具有索引,並且,由所有的值相乘,同一組內的所有字段將具有相同的數組索引:

foreach($_POST['name'] as $num => $one){ 

    echo $_POST['name'][$num]; // or $one 
    echo $_POST['surname'][$num]; 
    echo $_POST['address'][$num]; 
    echo $_POST['phone'][$num]; 
    echo $_POST['age'][$num]; 
} 
+0

您需要檢查該索引是否設置爲name [](姓氏,地址等)以外的其他字段,否則如果字段未設置,您將得到未定義的錯誤。 –

+0

還有一個問題。只有第一個可以用變量$ 1調用?所有其他人都應該使用$ _POST進行調用,對吧? –

+0

@sweettea我有驗證/所有領域都需要反正:) –

0

可以這樣做:

$all = $_POST["name"]; 
foreach($all as $val) { 
    //Do whatever with $val 
} 
0

在這種情況下,最好使用像這樣的多維數組:

$all['name'] = $_POST['name']; 
$all['surname'] = $_POST['surname']; 
$all['address'] = $_POST['address']; 
$all['phone'] = $_POST['phone']; 
$all['age'] = $_POST['age']; 

//1st processing option 
foreach ($all as $key => $dataList) { 
    //some code 
    foreach ($dataList as $data) { 
     //some code 
    } 
} 

//2nd processing option 
foreach ($all['name'] as $data) { 
    //some code 
} 
//repeat for each of 'name, surname, address, phone, age' 
相關問題