我有一个数组,我正在使用它来创建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
,这样我就有了多个不同的组。
如果我的解释中遗漏了什么,请告诉我。
目前还不清楚为什么需要这样的命名约定,但可以这样做。简化如下:
<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>