我有一个变量$b = substr($r [‘pon_port’],4,2);在foreach循环中.
$b的Var转储给出了这样的字符串列表:
$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"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。