PHP 数组 with with If Empty 语句,以逗号分隔
PHP array with with If Empty statement, separated by coma
所以我把这个地址格式数组放在一起,效果非常好:
$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?,但是我如何在数组中添加条件,保留空白并将填写的元素分隔开同时昏迷?
所以如果只填写必填字段(城市,国家),我会得到这样的输出:城市,国家
如果我没猜错,解决方案可能比您想象的要简单。您想要的是以逗号分隔的字符串打印所有数组值(如果它们不为空)。你可以做的是在打印时简单地从数组中删除空元素:
<?php echo implode(", ", array_filter($arr)); ?>
这将在将数组分解为逗号分隔的字符串之前从数组中删除空元素。
您可以尝试在内爆之前从数组中删除空值:
$arr = array_filter($arr);
查看有关 array_filter() 函数的更多信息。
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' );
}
所以我把这个地址格式数组放在一起,效果非常好:
$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?,但是我如何在数组中添加条件,保留空白并将填写的元素分隔开同时昏迷?
所以如果只填写必填字段(城市,国家),我会得到这样的输出:城市,国家
如果我没猜错,解决方案可能比您想象的要简单。您想要的是以逗号分隔的字符串打印所有数组值(如果它们不为空)。你可以做的是在打印时简单地从数组中删除空元素:
<?php echo implode(", ", array_filter($arr)); ?>
这将在将数组分解为逗号分隔的字符串之前从数组中删除空元素。
您可以尝试在内爆之前从数组中删除空值:
$arr = array_filter($arr);
查看有关 array_filter() 函数的更多信息。
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' ); }