[英]Remove multiple commas in PHP
对不起,如果这是非常基本但我只是在学习PHP。
我有一些看起来像的代码:
<h4><?=$prop['house_number']?>, <?=$prop['street']?>, <?=$prop['town']?></h4>
这是从数据库中带回来的,例如:55,主要街道,城镇名称
当地址不包含街道名称时,它会返回例如:55 ,, townname。
我想知道如何删除商家,所以它只是带回来,例如:55,townname。
希望这是一个非常简单的,但我已经尝试了一些东西,似乎无法做到正确。
非常感谢
使用数组来保存值,并使用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);
更换
<?=$prop['street']?>,
同
<?php if(strlen($prop['street'] > 0) echo $prop['street'] . ", "; ?>
旧代码输出街道名称后跟逗号,新代码检查街道名称是否长于0个字符,如果是,则仅输出。
你可以使用内联条件,试试这个:
<?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>
您可以稍后修复输出:
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>';
您可以使用三元运算符来检查每个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>
建议你习惯数组函数,并且内爆; 假设你的$ 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
东西 - 绕过所有的空箱。
这只是另一种方式,你可以将地址字符串保存在一个变量中,用一个替换双逗号[,,]。 类似于hakre是sugessting的想法。
例:
<?php $str = $prop['house_number'] . ',' . $prop['street'] . ',' . $prop['town']?> ;?>
<h4><?=str_replace(',,','',$str);?></h4>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.