PHP-为追加递增数字的输入创建名称属性
我使用这个数组创建UI组件。我使用的插件需要将唯一的名称传递到输入的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,
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是的,我已经检查了插件,遵循这种命名约定有点奇怪,我不需要在应用程序的另一部分使用它,但是我正在实现的这一部分给我带来了这个新问题。谢谢。事实上,我只是稍微改变了一下回声,因为我意识到数学可以使两个数字发生碰撞和分组<代码>
。。仅供以后阅读的人使用。