如果缺少该值,是否可以在数组中显示一个空值?

问题描述 投票:-1回答:4

我有这段代码。

它的作用是通过电子邮件显示供应商名称。问题是,如果供应商名称为空,因为某些人不需要它,我会收到一条错误,将我重定向到这段代码。

我是否可以说,如果供应商名称为空,则显示为无?还是空格?

<?php 
    $array1supplier = get_post_meta($productId, 'fancyincarray', true);
    echo $array1supplier['supplier']; 
?>
php arrays if-statement
4个回答
0
投票

要检查数组是否有键,您可以像这样使用isset函数:

$array1supplier = get_post_meta($productId, 'fancyincarray', true);
echo (isset($array1supplier['supplier'])) ? $array1supplier['supplier'] : '';

0
投票

使用empty()功能检查是否为空。代码:

<?php 
    $array1supplier = get_post_meta($productId, 'fancyincarray', true);
    if(empty($array1supplier['supplier'])) {
    echo "Supplier is empty!"; 
    } else {
    echo $array1supplier['supplier']; 
    }
?>

或您也可以使用isset()功能检查是否已设置。代码:

<?php 
$array1supplier = get_post_meta($productId, 'fancyincarray', true);
if(isset($array1supplier['supplier'])) {
echo $array1supplier['supplier'];
} else {
echo "Supplier is empty!";
}
?>

或您可以只使用if($array1supplier['supplier'] == "")代码:

<?php 
$array1supplier = get_post_meta($productId, 'fancyincarray', true);
if($array1supplier['supplier'] == "") {
echo "Supplier is empty!"; 
} else {
echo $array1supplier['supplier']; 
}
?>

它们都是相同的,您可以选择任何想要的内容


0
投票

似乎您期望从get_post_meta()返回一个数组

根据WP Code Reference

get_post_meta(int $ post_id,字符串$ key ='',bool $ single = false)

检索帖子的帖子元字段。

返回:(混合),如果$ single为假,将是一个数组。将价值元数据字段,如果$ single为true。

因此最后一个参数应为false

使用isset()确定是否设置了变量并且不为NULL

尝试一下:

$array1supplier = get_post_meta($productId, 'fancyincarray', false);
echo (isset($array1supplier['supplier'])) ? $array1supplier['supplier'] : "Empty";

-1
投票
<?php 
            $array1supplier = get_post_meta($productId, 'fancyincarray', true);
            echo (!empty($array1supplier['supplier']) 
              ? $array1supplier['supplier']
              : '';
?>
© www.soinside.com 2019 - 2024. All rights reserved.