如果在PHP中的for循环中重复检查字符串

时间:2014-08-27 17:46:49

标签: php string

    $a="abc";
    $b=123;
    $c=1;

    for ($i=0;$i<3;$i++) {
        $str="'" . $a . "' , '" . $b . "', '" . $c . "', '1'";
        $sum .= "(" . $str . "),";
    }
    //output ('abc' , '123', '1', '1'),('abc' , '123', '1', '1'),('abc' , '123', '1', '1'),
    echo $sum;

任何人都可以帮我解决上述代码吗? 我希望$sum只输出一次('abc' , '123', '1', '1'),。 我必须重复检查$str

任何人都可以帮助我或给我一些点击量吗? 谢谢。

2 个答案:

答案 0 :(得分:1)

这将检查字符串是否相同。如果是的话,我们继续前进

<?php
    $a="abc";
    $b=123;
    $c=1;

    $tempStr =  '';
    $str = '';
    $sum = '';
    for ($i=0;$i<3;$i++) {
        $tempStr = "'" . $a . "' , '" . $b . "', '" . $c . "', '1'";
        if ($tempStr === $str) {
            continue;
        }//END IF
        $str="'" . $a . "' , '" . $b . "', '" . $c . "', '1'";
        $sum .= "(" . $str . "),";
    }
    //output ('abc' , '123', '1', '1')
    echo rtrim($sum, ',');
?>

编辑:添加了fiddle here

答案 1 :(得分:0)

它为for块的每次迭代连接到$ str。你必须拿走for语句,所以它只执行一次。然后,您将获得(&#39; abc&#39;,&#39; 123&#39;,&#39; 1&#39;,&#39; 1&#39;),仅限一次。

如果你想检查它是否被重复,你可以通过&#34;,&#34;来解析。通过使用explode()http://www.w3schools.com/php/func_string_explode.asp并检查数组中有多少元素。