带有If Empty语句的PHP数组,由逗号分隔

时间:2017-06-13 12:05:19

标签: php arrays wordpress if-statement conditional

所以我把这个地址格式数组放在一起,它的效果非常好:

$address_street = get_field( 'address_street' );
$address_city = get_field( 'address_city' );
$address_postcode = get_field( 'address_postcode' );
$address_state = get_field( 'address_state' ); 
$terms = get_the_terms($post->id, 'address_country');

foreach ( $terms as $term ) { }
?>

<div id="address-widget">
    <p><strong>Where to find us?</strong></p> 

    <?php $arr = array($address_street, $address_city, $address_postcode, $address_state, $term->name); ?>

    <p class="address-format">
        <?php echo implode(", ", $arr); ?>
    </p>
</div>

并输出昏迷分隔的地址的所有细节,就像我想要的那样。

现在的问题是$address_street, $address_postcode and $address_state不是强制字段,所以如果它们没有被填写,那么它们将被留空而没有额外的昏迷。

所以我可以找到如何用这里有条件的项输入数组:How can I add a condition inside a php array?,但是如何在数组中添加条件,保留空白并将填充的元素用逗号分隔同时?

因此,如果只填写必填字段(城市,国家),我会得到如下输出: 城市,国家

3 个答案:

答案 0 :(得分:3)

如果我找对你,解决方案可能比你想象的要简单。你想要的是在逗号分隔的字符串中打印所有数组值(如果它们不为空)。你可以做的是在打印时简单地从数组中删除空元素:

<?php echo implode(", ", array_filter($arr)); ?>

这会在将数据插入逗号分隔的字符串之前从数组中删除空元素。

答案 1 :(得分:1)

if(get_field('address_street')!=''){

$ address_street = get_field('address_street'); }

if(get_field('address_city')!=''){

$ address_city = get_field('address_city'); }

if(get_field('address_postcode')!=''){

$ address_postcode = get_field('address_postcode'); }

if(get_field('address_state')!=''){

$ address_state = get_field('address_state'); }

答案 2 :(得分:0)

您可以尝试使用以下方法在内爆之前从数组中删除空值:

props

详细了解array_filter()功能。