我从我的数据库中返回一个数组,其中包含类似 0,0,1,0 的内容,在本例中将选择这些内容。我正在检查是否应该将元素标记为已选中。
$p
获取包含产品组的数组。然后对于一系列元素,我使用类似这样的东西。
<input <?= $p[0]=='1'?'checked':'';?> value="Product 1" />
<input <?= $p[1]=='1'?'checked':'';?> value="Product 2" />
<input <?= $p[2]=='1'?'checked':'';?> value="Product 3" />
<input <?= $p[3]=='1'?'checked':'';?> value="Product 4" />
但有时根本就没有做任何选择,这会返回一个空数组,这又会触发 php 错误,如 Uninitialized string offset: 3
在保持标记整洁的同时处理空数组的好方法是什么?单独的功能还是这样?
更新
更新的解决方案,其中有 4 个 radio 导致检查前三个。
<?php $p=check(1); ?>
<input type="radio" <?= !empty($p[0])?'checked':'';?>>
<input type="radio" <?= !empty($p[1])?'checked':'';?>>
<input type="radio" <?= !empty($p[2])?'checked':'';?>>
<input type="radio" <?= !empty($p[3])?'checked':'';?>>
> 而sql查询结果甚至可能不是空数组。我想如果查询没有结果,结果甚至没有设置空数组?
最佳答案
使用empty()
:
<input <?= !empty($p[0]) ? 'checked' : ''; ?> value="Product 1" />
来自文档:
No warning is generated if the variable does not exist. That means empty() is essentially the concise equivalent to !isset($var) || $var == false.
因为 0
是 false value ,这适用于您的情况。
关于PHP:有什么好的方法可以处理有时为空的数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17836254/