如何检查相同的字符串是出现两次还是多次并删除它。拆分字符串的示例是 123 456 123 789 ,我希望能够取消设置拆分字符串行中的重复字符 例如,我的预期输出应该像 web123 web456 web789 。这是我试过的:
<?php
$str = "jmja12345jmja612378911";
$int = filter_var($str, FILTER_SANITIZE_NUMBER_INT);
$disp = str_split($int, 3);
foreach($disp as $char){
if(strlen($char) == "3")
{
$net = substr($char,1,2);
if(preg_match('/(50|30)/i', $net))
{
echo "our computer can not edit $net";
exit();
}
else
{
$pd = str_replace("$net","web$net",$net);
$str = implode(array_unique(explode( $pd)));
echo $str;
}
}
}
但我得不到好结果。我究竟做错了什么?查看https://ideone.com/fork/rGyH41
答案 0 :(得分:2)
如果您只需要删除重复的值。为什么你不直接这样试试。
<?php
$str = "jmja12345jmja612378911";
$int = filter_var($str, FILTER_SANITIZE_NUMBER_INT);
$disp = str_split($int, 3);
$arr = array_unique($disp);
var_dump($arr);
并为您的功能工作。试试这个
$str = "jmja12345jmja612378911";
$int = filter_var($str, FILTER_SANITIZE_NUMBER_INT);
$disp = str_split($int, 3);
foreach($disp as $char){
if(strlen($char) == "3")
{
$net = substr($char,1,2);
if(preg_match('/(50|30)/i', $net))
{
echo "our computer can not edit $net";
exit();
}
else
{
$pd[] = str_replace("$net","web$net",$net);
}
}
}
$array = array_values(array_unique($pd));
var_dump($array);
$str = implode(array_unique($pd));
echo $str;
答案 1 :(得分:0)
根据我的理解,您试图从字符串中删除所有非数字字符,并获得一个不重复数值的数组。 这是一种简单的方法。
class MockRouter {
navigate = jasmine.createSpy('navigate');
start = new NavigationStart(0, '/home');
end = new NavigationEnd(1, '/home', '/dashboard');
events = new Observable(observer => {
observer.next(this.start);
observer.next(this.end);
observer.complete();
});
}
我希望这能解决你的问题。