gpt4 book ai didi

php - 如果有连续的相似字符串,只打印一个字符串

转载 作者:可可西里 更新时间:2023-10-31 23:45:46 24 4
gpt4 key购买 nike

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

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"

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

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'],4,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, based on your code
{
$b = substr($r['pon_port'],4,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"

关于php - 如果有连续的相似字符串,只打印一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38430932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com