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 {....???
4

3 に答える 3

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];
}
于 2012-09-14T16:49:22.843 に答える
0

次のようにできます。

$all = $_POST["name"];
foreach($all as $val) {
    //Do whatever with $val
}
于 2012-09-14T16:48:59.510 に答える
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'
于 2012-09-14T16:53:39.060 に答える