我有这个数组,我用它来创建一个UI组件。我使用的插件需要将唯一的名称传递到输入的name="<name>"
属性中。我自然希望通过broadcast
,direct_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-0
和broadcast-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
等值的内容,以便我有多个不同的群组。
如果我在解释中遗漏了任何内容,请告诉我。
答案 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>