Foreach多维数组关联键

时间:2014-05-10 17:30:06

标签: php arrays foreach

请为我提供包含不同密钥name='qt[]'name='price[]'name='desc[]'的html表单数组。

所以我想预先知道这个数组并将值放在html表中我该怎么办?

loop
<tr>
    <td><?php echo qt; ?></td>
    <td><?php echo price; ?></td>
    <td><?php echo desc; ?></td>
 </tr>
end loop

这是我的代码:

foreach ($items['quantite'] as $qt) {
    foreach ($items['description'] as $desc) {
        foreach ($items['price'] as $price) {

但那给了我一个重复。

谢谢!

1 个答案:

答案 0 :(得分:0)

当你嵌套循环时,你无法得到你想要的东西。

可以使用$key => $value语法循环遍历数组的一个,然后在循环内部使用密钥访问另一个的值阵列。 (当然,只有当所有阵列具有完全相同的结构时才会起作用。)...但是:

  

我有一个html表单数组,其中包含不同的键名=&#39; qt []&#39;,name =&#39; price []&#39;,name =&#39; desc []& #39;

我建议您更改 - 首先使用qtpricedesc作为索引。

name="product[0][qt]", name="product[0][price]", name="product[0][desc]"
name="product[1][qt]", name="product[1][price]", name="product[1][desc]"

这将在你的$ _POST中给你一个数组product(假设你的表单使用POST),你可以简单地循环 - 然后在那个循环中,你可以访问条目qt,每个产品都有pricedesc

这样做的好处是可以按产品“分组”您的数据 - 而对于您当前的方法,如果其中一个值丢失(当其中一个输入字段是复选框时,则不会提交时)未经检查),您的整个系统将崩溃,您将无法再将正确的值与正确的产品相匹配。