0

以下の実際の配列は、基本的に$_POSTの配列です。フォームから何が来ているのかを理解することができます。同じ名前の異なる値を持つ3つのコントロール。必要なのはこの配列の下です。

Array
(
    [mytext] => Array
        (
            [0] => aaaa
            [1] => bbbb
            [2] => ddd
        )

    [mysel] => Array
        (
            [0] => one
            [1] => two
            [2] => two
        )

    [submit] => Submit
)

以下の行形式の配列が必要ですが、$_POSTデータに基づいて動的になります。

Array
(
    [0] => Array
        (
            [0] => aaaa
            [1] => one

        )

    [1] => Array
        (
            [0] => bbbb
            [1] => two

        )

    [2] => Array
        (
            [0] => dddd
            [1] => two

        )


)
4

3 に答える 3

1

これを試して:

$out = Array();
foreach($_POST['mytext'] as $k=>$v) {
    $out[$k] = Array($v,$_POST['mysel'][$k]);
}
var_dump($out);
于 2012-05-15T15:02:24.763 に答える
1
// Code To Get controls value in row wise
$count=0;
foreach($_POST as  $key=>$val){
    foreach($_POST[$key] as $val2){
        $row[$count][]=$val2;
        $count++;
    }
    $count=0;
}
print_r($row);
于 2012-05-16T05:33:19.840 に答える
0

フィールドの 1 つをループしてから、対応する値を他のフィールドから取得します。

$result = array();
foreach($_POST['mytext'] as $k=>$v){
    $result[] = array($v, $_POST['mysel'][$k]);
}

これを行うために使用することもできますarray_map

// PHP 5.3+
$result = array_map(function($a, $b){
    return array($a, $b);
}, $_POST['mytext'], $_POST['mysel']);

// PHP <= 5.2
$result = array_map(create_function('$a,$b', 'return array($a,$b);'), $_POST['mytext'], $_POST['mysel']);
于 2012-05-15T15:03:26.827 に答える