如何从foreach循环的末尾删除字符串

时间:2016-03-19 03:33:46

标签: php

我可以从OR循环

的末尾删除foreach
if (isset($_POST['size'])) {
                    $where .= ' AND ';
                    $s = $_POST['size'];
                    $end = count($s);

                    foreach ($s as $ss) {
                        $where .= 'pSize=' . $ss;
                        $where .= ' OR ';
                    }

                } else {
                    $s = '';
                }

5 个答案:

答案 0 :(得分:2)

根据您的情况,我认为您可以轻松使用IN

if (isset($_POST['size'])) {
    $size = $_POST['size'];
    if($size){
         $where .= ' AND `pSize` IN ('.implode(",", $size).')';
    }
}

答案 1 :(得分:1)

这也适用于您的情况:

AndroidJavaClass UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 
AndroidJavaObject currentActivity = UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity");

AndroidJavaObject intent = currentActivity.Call<AndroidJavaObject>("getIntent");
bool hasExtra = intent.Call<bool> ("hasExtra", "arguments");

if (hasExtra) {
 AndroidJavaObject extras = intent.Call<AndroidJavaObject> ("getExtras");
 arguments = extras.Call<string> ("getString", "arguments");
}

答案 2 :(得分:0)

避免该问题的一种方法是创建一个数组并进行内爆。

<?php

$to       = 'somenath@gmail.com';
$subject  = 'Testing sendmail.exe';
$message  = 'Hi, you just received an email using sendmail!';
$headers  = 'From: myid@gmail.com' . "\r\n" .
            'MIME-Version: 1.0' . "\r\n" .
            'Content-type: text/html; charset=utf-8';
if(mail($to, $subject, $message, $headers))
    echo "Email sent";
else
    echo "Email sending failed";
?>

也许你需要在Where的括号,我为你做了。

注意SQL注入,使用预处理语句。

答案 3 :(得分:0)

你可以采取多种方式  方式1:  你可以去for循环而不是foreach()

$a=sizeof($s);
$x=$a-1;
for($i=0;$i<$a;$i++){
if($i==$x){ $where .= 'pSize=' . $ss;
                       }
else{                   $where .= 'pSize=' . $ss;
                        $where .= ' OR ';
}
} 

way2:使用rtrim()

 foreach ($s as $ss) {
                        $where .= 'pSize=' . $ss;
                        $where .= ' OR ';
                    }
$where=rtrim($where,' OR ');

答案 4 :(得分:0)

有很多方法可以做到这一点。你甚至可以使用for循环。如果您更喜欢foreach循环,可以创建一个迭代器变量来模仿for循环,如下所示:

if (isset($_POST['size'])) {
                    $where .= ' AND ';
                    $s = $_POST['size'];
                    $end = count($s);

                    $i = 0;
                    foreach ($s as $ss) {
                        $where .= 'pSize=' . $ss;
                        if (++$i != $end) 
                            $where .= ' OR ';
                    }
} else {
     $s = '';
}