Php 如何创建Zend_Form_元素的多维数组

Php 如何创建Zend_Form_元素的多维数组,php,forms,zend-framework,Php,Forms,Zend Framework,我目前在实现包含二维元素数组的Zend_表单/子表单时遇到问题 我有一些从DB查询返回的数据,我想在编辑表单中使用这些数据,我正在寻找我的表单以多维数组表示法作为名称输出HTML输入标记,这样发布时返回的数据是一个二维数组,以便更容易处理 预期产出示例: <input type="text" name="data[1][val] value="1"> <input type="text" name="data[1][str] value="asdf"> <input

我目前在实现包含二维元素数组的Zend_表单/子表单时遇到问题

我有一些从DB查询返回的数据,我想在编辑表单中使用这些数据,我正在寻找我的表单以多维数组表示法作为名称输出HTML输入标记,这样发布时返回的数据是一个二维数组,以便更容易处理

预期产出示例:

<input type="text" name="data[1][val] value="1">
<input type="text" name="data[1][str] value="asdf">
<input type="text" name="data[2][val] value="2">
<input type="text" name="data[2][str] value="fdsa">

在使用子窗体的试用期间,我能够完成以下输出,但我的第一对括号似乎总是被过滤掉,剩下的是:

<input type="text" name="data1[val] value="1">
<input type="text" name="data1[str] value="asdf">
<input type="text" name="data2[val] value="2">
<input type="text" name="data2[str] value="fdsa">


在我的多次搜索中,我已经找到了很多关于如何实现一维数组表示法的文档,但关于二维数组表示法,我还是一片空白。

很显然,您有一个子表单,名为data1,对吗?对于两个元素,一个是名为“val”的元素,另一个是名为“str”的元素,请尝试此操作,但不确定它是否可以工作:

$elementVal->setIsArray(true)


这将向数组“data1”添加另一个维度,但我无法为其指定名称,因此它将显示为“data1[val][]”

表单的setIsArray应设置为true
$subform1->setIsArray(true)
$subform2->setIsArray(true)
然后setElementsBelongto可以用作
$subform1->setElementsBelongTo('data[1]”)
$subform2->setElementsBelongTo('data[2]”)
我希望这能给你一些想法