PHP:有什么好的方法可以处理有时为空的数组吗?

标签 php html arrays

我从我的数据库中返回一个数组,其中包含类似 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.

因为 0false value ,这适用于您的情况。

关于PHP:有什么好的方法可以处理有时为空的数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17836254/

相关文章:

php - 如何在PHPexcel中自动更改比例

html - 子元素在 flex 容器中不可见

php - 将平面数组转换为分层的多维数组

php - 获取数据库结果后从数组中删除最后一个逗号

java:具有颜色分量和直方图间隔的二维数组

php - 使用 php/mysql 处理多个搜索查询

php - PDO 搜索查询,让它像 Android 联系人搜索

html - CSS float right 无法正常工作

php - 在 Woocommerce 产品标题中添加换行符

php - ssl 不适用于 chrome 和 safari