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


PHP - Create name attributes for input appending an incrementing number

我有一个数组,我正在使用它来创建UI组件。我使用的插件需要将唯一的名称传递到输入的name="<name>"属性中。当然,我想通过broadcastdirect_response等等,如下所示。

  'Marketing' => array( 
    'broadcast' => 4, 
    'direct_response' => 5, 
    'events' => 8, 
    'print' => 5,
    'out_of_home' => 3, 
    'online' => 7, 
    'social_media' => 5, 
    'sales_promotion' => 4 
    ),

我遇到的问题是,UI组件将基于多次重复多次。这导致了一个问题,因为name属性不是唯一的,因此我需要在末尾添加一个任意值,例如递增的数字,例如broadcast-0broadcast-1(对所有keys重复)。

我可以用名为$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; ?>

所以我需要做的是向<?php echo $name ?>添加一些内容,这些内容将产生值,比如broadcast-1,这样我就有了多个不同的组。

如果我的解释中遗漏了什么,请告诉我。

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

<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>