很抱歉,如果这是非常基本的,但我只是在学习PHP。
我有一些看起来像的代码:
<h4><?=$prop['house_number']?>, <?=$prop['street']?>, <?=$prop['town']?></h4>
这是从数据库中带回来的,例如:55,主要街道,城镇名称
当地址不包含街道名称时,它会返回,例如:55 ,, townname。
我想知道如何删除商家,所以它只会带回来:例如:55,townname。
希望这是一个非常简单的事情,但我已经尝试过几件事,似乎无法做到正确。
非常感谢
答案 0 :(得分:3)
使用数组来保存值,implode()
这样的事情:
$result = array();
if (!empty($prop['house_number'])
$result[] = $prop['house_number'];
if (!empty($prop['street'])
$result[] = $prop['street'];
if (!empty($prop['town'])
$result[] = $prop['town'];
$result = implode(',',$result);
答案 1 :(得分:2)
替换
<?=$prop['street']?>,
带
<?php if(strlen($prop['street'] > 0) echo $prop['street'] . ", "; ?>
旧代码输出街道名称后跟逗号,新代码检查街道名称是否超过0个字符,如果是,则仅输出。
答案 2 :(得分:2)
您可以使用内联条件,试试这个:
<?php
$house_num=($prop['house_number']) ? $prop['house_number'].',' : null;
$street=($prop['street']) ? $prop['street'].',' : null;
$town=($prop['town']) ? $prop['town'] : null;
$h4=$house.' '.$street.' '.$town;
?>
然后在使用中:
<h4><?php echo($h4); ?></h4>
答案 3 :(得分:1)
您可以稍后修复输出:
ob_start();
?>
<h4><?=$prop['house_number']?>, <?=$prop['street']?>, <?=$prop['town']?></h4>
<?php
echo strtr(ob_end_clean(), ', , ', ', ');
但实际上有一百种方法可以解决它,这只有一种。
echo '<h4>' , implode(', ', array_filter(
array($prop['house_number'], $prop['street'], $prop['town']), 'strlen')
), '</h4>';
答案 4 :(得分:1)
您可以使用三元运算符来检查每个var是否为空。看看http://davidwalsh.name/php-shorthand-if-else-ternary-operators
然后代码如下:
<h4>
<?=!empty($prop['house_number']) ? $prop['house_number'].', ' : ''?>
<?=!empty($prop['street']) ? $prop['street'].', ' : ''?>
<?=!empty($prop['town']) ? $prop['town'].', ' : ''?>
</h4>
答案 5 :(得分:1)
建议你习惯数组函数,然后崩溃;假设你的$ prop数组看起来像这样:
$prop = array(
"house_number" => 55,
"street" => "",
"town" => "Houston"
);
您可以过滤数组并使用implode:
function filter_empty( $a ) {
if( strlen(trim($a)) > 0 ) return( true );
return( false );
}
$filtered = array_filter( $prop, 'filter_empty' );
从那里,阵列将如下所示:
print_r( $filtered );
/*
Array
(
[house_number] => 55
[town] => Houston
)
*/
人类可读的文字行很简单:echo implode( ", ", $filtered );
输出类似55, Houston
的内容 - 绕过所有空箱。
答案 6 :(得分:0)
这只是另一种方式,你可以将地址字符串保存在一个变量中,并用一个替换双逗号[,,]。类似于hakre最高的想法。
示例:
<?php $str = $prop['house_number'] . ',' . $prop['street'] . ',' . $prop['town']?> ;?>
<h4><?=str_replace(',,','',$str);?></h4>