3

このHTMLコード

<input name="Html_Array[][title]">
<input name="Html_Array[][amount]">

このPHP配列を生成する

    [0] => Array
            (
                [title] => Seilpendel für Tragsysteme
            )

        [1] => Array
            (
                [amount] => 2
            )...So on

次のPHP配列を生成するHTMLコードは何ですか

        [0] => Array
            (
                [title] => Seilpendel für Tragsysteme
                [amount] => 1
            )

        [1] => Array
            (
                [title] => Article Tiel
                [amount] => 2
            )

配列のサイズが不明であるため、インデックスを0、1、2などにハードコーディングすることはできません

4

4 に答える 4

2

フォームフィールドの新しいグループを追加するたびにインデックスを保持します(jQueryを使用)。

window.count = 0;
$('#add-more-button').on('click', function() {
 $('<input name="html_array[' + window.count + '][title] />').appendTo('form:first');
 $('<input name="html_array[' + window.count + '][amount] />').appendTo('form:first');
 window.count++;
});

正しい構造を取得する必要があります。

PHPを意味する場合は編集します。

// Assuming 0-indexed array
foreach($my_array as $key => $value) {
 echo '<input name="html_array[' . $key . '][title]" />';
 echo '<input name="html_array[' . $key . '][value]" />';
}
于 2012-04-29T23:07:22.587 に答える
1

HTMLでその正確な構造を作成できるとは思いません。それらをマージするだけです:

$result = array();
$current = array();

foreach($input as $item) {
    $k = reset(keys($item));

    if(isset($current[$k])) {
        $result[] = $current;
        $current = array();
    }

    $current[$item] = $item[$k];
}
于 2012-04-29T23:06:18.473 に答える
1
 <input name="Html_Array[0][title]">
 <input name="Html_Array[0][amount]">

 <input name="Html_Array[1][title]">
 <input name="Html_Array[1][amount]">

等々...

ループを使用して、必要な整数シーケンスを生成できます。

于 2012-04-29T23:14:37.203 に答える
0

2番目の次元の配列名を囲んでいた引用符を削除するだけです

 <input name="Html_Array[][title]">
 <input name="Html_Array[][amount]">
于 2012-04-29T23:07:23.190 に答える