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

时间:2014-09-14 02:35:10

标签: php html arrays

我有这个数组,我用它来创建一个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等值的内容,以便我有多个不同的群组。

如果我在解释中遗漏了任何内容,请告诉我。

1 个答案:

答案 0 :(得分: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>