0

単一のフォームには、次の名前の入力があります。

  • foo_name
  • foo_age
  • foo_bday
  • bar_cost
  • bar_date

メソッドとして post を使用してフォームを送信した後、次のように入力を配列にグループ化したいと考えました。

$post = array(
    'foo' => array(),
    'bar' => array(),
    'baz' => array()
)

そのため、'foo' で始まるすべての array_keys は 'foo' 配列にプッシュされ、他の配列も同様です。もちろん、それぞれの価値観と一緒に。

これが私の試みです:

$post = array('foo' => array(), 'bar' => array(), 'baz' => array());
echo '<pre>';
foreach ($_POST as $key => $value) {
    if (startsWith($key, 'foo_')) {
        array_push($post['foo'], $key = $value);
    } else if(startsWith($key, 'bar_')) {
    } else if (startsWith($key, 'baz_')) {
    }
}

foreach ($post['foo'] as $key => $value) {
    echo $key . ' = ' . $value . '<br>';
}

最後の foreach ステートメントはこれを出力します

0 = 1111
1 = 1112
2 = 210

そのarray_keysを持つ代わりに、$key出力された場合に生成されたインデックス

4

2 に答える 2

0

入力フィールドに好きな名前を付けることができる場合はname="foo[name]"、最初から名前を付けることができます。これにより、追加のコードを使用してデータを自分で構造化する必要なく、それに応じて構造化された配列が得られます。

于 2013-04-03T12:54:29.770 に答える