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

只需删除包裹第二维数组名称的引号

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