我有一个字符串$ str,我想搜索一个字符并将其与其他字符串隔离然后将它/它们存储在一个$变量中,该字符是一个完整的冒号“:”
说我有字符串
1
$str = 'water'
$variable ='';
2。
$str = 'water : air'
$variable =':';
3。
$str = 'water : air : land'
$variable ='::'
... e.t.c
如果我使用substr_count($str, ":");
我可以计算出现的次数,但我想根据它出现的次数而不是数字来返回字符本身
答案 0 :(得分:3)
好吧,使用substr_count
使用它来重复它发生的次数。
$needle = ':';
$str = 'water : air : land';
$variable = str_repeat($needle, substr_count($str, $needle));
echo $variable; // ::
答案 1 :(得分:2)
你是正确的方式;您可以将substr_count()
与str_repeat()
结合使用:
str_repeat(':', substr_count($str, ':'));
或者如果你必须多次使用它,你可以用它来创建一个函数:
function repeat_needle($needle, $haystack) {
return str_repeat($needle, substr_count($haystack, $needle));
}
这是一个PHP Fiddle,可以看到它的实际效果。
答案 2 :(得分:2)
另一个简单的方法...使用preg_replace如下所示,这意味着用冒号替换所有内容除了冒号“:”
的preg_replace( “/ [^:] /”, '',$ A);
$cat a.php
<?php
$a="water : air : land : Fire : Sky";
$b=preg_replace("/[^:]/",'',$a);
print $b."\n" ;
?>
$php a.php
::::