我有以下查询:
//product density
$stmt_density = $conn->prepare("SELECT density FROM product_density
WHERE product_id = :productid ");
$stmt_density->execute(array(':productid' => "$pid"));
$density = $stmt_density->fetchAll();
如果密度不存在,则值为" NULL"。
var_dump($density);
给出以下输出:
array(1) { [0]=> array(2) { ["density"]=> NULL [0]=> NULL } }
如果数组不为空,我需要检查数组是否有值,并提供选择选项。
答案 0 :(得分:0)
尝试这样的事情
function check($array, $key)
{
if(array_key_exists($key, $array)) {
if (is_null($array[$key])) {
echo $key . ' is null';
} else {
echo $key . ' is set';
}
}
}
答案 1 :(得分:0)
我认为您正在尝试检查数组中的空值try
function array_key_exists_r($needle, $haystack)
{
foreach ($haystack as $v) {
foreach ($v as $k=>$v1) {
if(empty($v1) || $v1 ==$needle)
$result[$k] = $v1;
}
if ($result) return $result;
}
}
$r = array_key_exists_r('NULL', $density);
print_r($r); //Array ( [density] => [0] => )
函数将为所有空键或NULL键提供数组
答案 2 :(得分:0)
根据您是否希望从查询中获取多个结果可能会更改答案,特别是如果您回来说1个结果为NULL而另一个没有。但你可以做......
function validResult($density) {
foreach($density as $item) {
if($item["density"] == NULL) return false;
}
return true;
}
if(validResult($density))
echo "We have values";
else
echo "Array contains null";
如果任何结果为null,则该函数将返回false,无论有多少都不为null