php – 如果有连续的类似字符串,则只打印一个字符串

我有一个变量$b = substr($r [‘pon_port’],4,2);在foreach循环中.
$b的Var转储给出了这样的字符串列表:

string(1) "0" string(1) "0" string(1) "0" string(1) "0" string(1) "0"
string(1) "1" string(1) "1" string(1) "1" string(1) "1" string(1) "1"
string(1) "2" string(1) "2" string(1) "2" string(1) "2" string(1) "2"
string(1) "3" string(1) "3" string(1) "3" string(1) "3" string(1) "3"
string(1) "4" string(1) "4" string(1) "4" string(1) "4" string(1) "4"
string(1) "0" string(1) "0" string(1) "0" string(1) "0" string(1) "0"
string(1) "1" string(1) "1" string(1) "1" string(1) "1" string(1) "1"

我想要的是如果有类似的连续字符串我想只有一个字符串>例如:在上面的转储中.我只是想:

string(1) "0" 
string(1) "1" 
string(1) "2" 
string(1) "3" 
string(1) "4" 
string(1) "0" 
string(1) "1"

解决方法

如果我理解正确,你可以完成这个,记住最后一个数字:

$lastB = null;
foreach ($foo as $r) //I'm guessing that $r is the dummy variable,based on your code
{
        $b = substr($r['pon_port'],2); //You wrote this

        //This part prevents repetitions from happening
        if ($lastB === null || $b != $lastB) var_dump($lastB = $b);
}

(在这种情况下,我将赋值转移到参数中,使用var_dump($lastB = $b)而不是两个单独的语句.我发现它更整洁,但如果您愿意,可以将它们分开.)

如果您想要打印变量以外的其他操作,最终结果是,您可以使用以下代码

$lastB = null;
foreach ($foo as $r) //I'm guessing that $r is the dummy variable,2); //You wrote this

        //This part prevents repetitions from happening
        if ($lastB === null || $b != $lastB)
        {
            //do something with $b...
            $lastB = $b;
        }
}

我自己在序列“2 2 7 8 8 7”上尝试第一个代码,得到:

string(1) "2" string(1) "7" string(1) "8" string(1) "7"

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...