我有这个字符串:
$hours = '7, 8, 12';
$hourData = explode(', ', $hours);
Run Code Online (Sandbox Code Playgroud)
如果我var_dump($hourData),它返回:
array(3) {
[0]=>
string(1) "7"
[1]=>
string(2) "8"
[2]=>
string(2) "12"
}
Run Code Online (Sandbox Code Playgroud)
我有这个代码:
<?php for ($i=0; $i <= 23 ; $i++) { ?>
<div class="fl">
<input type="checkbox" name="limit_hour[]" value="<?php echo $i ?>" class="fl limit_hour"
<!-- ======================================================================== -->
<?php echo (isset($hourData[$i]) && $i == $hourData[$i] ? 'checked' : '') ?>>
<!-- ======================================================================== -->
<span class="fl lmBox"><?php echo $i ?>:00 - <?php echo $i ?>:59</span>
</div>
<?php } ?>
Run Code Online (Sandbox Code Playgroud)
这段代码:
<?php echo (isset($hourData[$i]) && $i == $hourData[$i] ? 'checked' : '') ?>
Run Code Online (Sandbox Code Playgroud)
我想呼应 "检查"了谁得到相同的值,我的复选框$ hourData数组值.
我该怎么办?
只需跟进三元并使用即可 in_array()
<?php echo (in_array($i, $hourData) ? 'checked' : ''); ?>
Run Code Online (Sandbox Code Playgroud)
很像这样:
<input
type="checkbox"
name="limit_hour[]"
value="<?php echo $i; ?>"
class="fl limit_hour"
<?php echo (in_array($i, $hourData) ? 'checked' : ''); ?>
/>
Run Code Online (Sandbox Code Playgroud)
使用$hourData[$i]没有意义,因为它们永远不会匹配.
第一次迭代:
$i = 0
(isset($hourData[$i]) && $i == $hourData[$i]
^ $hourData[$i] AND 0 == $hourData[$i] // 7
this does exist
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |