PHP-为追加递增数字的输入创建名称属性

PHP-为追加递增数字的输入创建名称属性,php,html,arrays,Php,Html,Arrays,我使用这个数组创建UI组件。我使用的插件需要将唯一的名称传递到输入的name=”“属性中。当然,我想通过广播,直接响应等等,如下所示 'Marketing' => array( 'broadcast' => 4, 'direct_response' => 5, 'events' => 8, 'print' => 5, 'out_of_home' => 3, 'online' => 7,

我使用这个数组创建UI组件。我使用的插件需要将唯一的名称传递到输入的
name=”“
属性中。当然,我想通过
广播
直接响应
等等,如下所示

  'Marketing' => array( 
    'broadcast' => 4, 
    'direct_response' => 5, 
    'events' => 8, 
    'print' => 5,
    'out_of_home' => 3, 
    'online' => 7, 
    'social_media' => 5, 
    'sales_promotion' => 4 
    ),
我遇到的问题是UI组件将重复多次。这会导致一个问题,因为
名称
属性不是唯一的,因此我需要附加一个任意值,例如递增的数字,例如结尾处的
广播-0
广播-1
(对所有
键重复)

我可以使用名为
$marketCount
的变量确定它将重复的次数。现在这只是一个值,比如
4
,而不是数组

<?php foreach ($profile['Marketing'] as $name => $value): ?>

  <tr>
    <td><?php echo ucwords(str_replace('_',' ',$name)) ?></td>
    <td>
      <input type="radio" name="<?php echo $name ?>" class="star {split:2} required" value="0.5" />
      <input type="radio" name="<?php echo $name ?>" class="star {split:2} required" value="1.0" />
      <input type="radio" name="<?php echo $name ?>" class="star {split:2} required" value="1.5" />
      <input type="radio" name="<?php echo $name ?>" class="star {split:2} required" value="2.0" />
      <input type="radio" name="<?php echo $name ?>" class="star {split:2} required" value="2.5" />
      <input type="radio" name="<?php echo $name ?>" class="star {split:2} required" value="3.0" />
      <input type="radio" name="<?php echo $name ?>" class="star {split:2} required" value="3.5" />
      <input type="radio" name="<?php echo $name ?>" class="star {split:2} required" value="4.0" />
      <input type="radio" name="<?php echo $name ?>" class="star {split:2} required" value="4.5" />
      <input type="radio" name="<?php echo $name ?>" class="star {split:2} required" value="5.0" />
    </td>
  </tr>

<?php endforeach; ?>


现在还不清楚为什么需要这样的命名约定,但是可以这样做。简化如下:

<table>
<?php $i = 0; foreach ($profile['Marketing'] as $name => $value): ?>
  <tr>
    <td><?php echo ucwords(str_replace('_',' ',$name)) ?></td>
    <td>
    <?php foreach (range(0.5, 5.0, 0.5) as $index => $val): ?>
      <input type="radio" name="<?php echo $name.($value+$i); ?>" class="star {split:2} required" value="<?php echo $val; ?>" />
      <?php endforeach; ?>
    </td>
  </tr>
<?php $i++; ?>
<?php endforeach; ?>
</table>


如果您不介意顺序,您可以在looop上初始化一个计数器,然后每次递增,然后只追加
echo$name。($value+$counter)
,就像这样,为什么要这样?您可以只使用
值[$name][]
而不是计数器是否为
$counter=0
foreach()
之前,或者我需要更多吗?是的,只是在顶部初始化,为什么需要这样做?我建议只创建一个分组数组,这样管理起来就容易多了。原因是我正在使用的UI组件。我有多个modals,当你打开时表示一些评级数据,当名称相同时,javascript将所有modals数据放在第一个modals中。因此,我需要唯一的名称,他们被放置在其适当的情态动词。如果您想向我展示分组数组是如何工作的,我也愿意看到这一点。总是在寻找最好、性能最好的代码。
0.5、1.0、1.5
从何而来?这只是硬编码,不管怎样,我还没有决定回答这个问题,仍然不太理解整个上下文,我知道这有点难以解释。我需要唯一的命名,因为如果没有它,jQuery插件会中断并将所有应用程序中的内容放在一个地方。基本上我是在和这个问题作斗争。要对您的代码进行一个小的编辑,我需要让它工作。@dvoutt是的,我编辑它是为了适应
broadcast-0
类似的内容,如果它能工作,我很高兴它能工作did@dvoutt是的,我已经检查了插件,遵循这种命名约定有点奇怪,我不需要在应用程序的另一部分使用它,但是我正在实现的这一部分给我带来了这个新问题。谢谢。事实上,我只是稍微改变了一下回声,因为我意识到数学可以使两个数字发生碰撞和分组<代码>
。。仅供以后阅读的人使用。