删除foreach循环中的最后一个字符串值

时间:2017-09-08 11:28:57

标签: php arrays for-loop

我在php中有一个循环

foreach($Array as $key =>$value) 
 {
     $TotalLine .=  " Qualification =".$value." OR ";
 }
  echo $TotalLine;

打印

  Qualification =1 OR Qualification =2 OR Qualification =3 OR Qualification =4 OR

现在我需要删除该行中的最后一个 OR ,Desired Output必须看起来像

 Qualification =1 OR Qualification =2 OR Qualification =3 OR Qualification =4 

如何做到这一点。任何帮助赞赏。

5 个答案:

答案 0 :(得分:0)

你可以使用php rtrim()函数来实现这个

foreach($Array as $key =>$value) 
{
    $TotalLine .=  " Qualification =".$value." OR ";
}
echo rtrim($TotalLine,"OR");

答案 1 :(得分:0)

您可以使用数组和implode

<强> DEMO

$TotalLine = [];
foreach ($Array as $key => $value) {
    $TotalLine[] = " Qualification =" . $value;
}
echo implode(" OR ", $TotalLine);

或者,如果您不想使用此方法,可以使用rtrim

<强> DEMO

rtrim($TotalLine," OR"); 

这里,不需要像" OR "那样使用最后一个空格,因为trim会将每个字符视为一个掩码。阅读文档

但前者是最优秀和最整洁的。您使用数组,然后使用implode函数连接值。后者修剪掉最后指定的字符串。

请注意:当您使用trim时,将删除蒙版中的字符。这里当你的值只是数字时就没有问题了。但是当你有ROAR之类的字符串时,你的上一个R也会被删除。 Demo也是如此。只是为了你的知识!或者,this article是从这个问题演变而来的。

答案 2 :(得分:0)

尝试使用end()这样的功能:

foreach($Array as $key =>$value){    
  $TotalLine .=  " Qualification =".$value;
  if(!end($value)){
    $TotalLine .= " OR ";
  }    
 }

答案 3 :(得分:0)

没有foreach循环的替代洗脱剂。

$array = [1,2,3,4];
$string = implode(" OR Qualification =", $array);
echo "Qualification =$string";

答案 4 :(得分:0)

简单使用<?php $Array =[1,2,3,4]; $TotalLine=""; foreach($Array as $key =>$value) { !empty($TotalLine) ? $TotalLine .= " OR Qualification =".$value : $TotalLine = "Qualification =".$value; } echo $TotalLine; ?>

PHP:

Qualification =1 OR Qualification =2 OR Qualification =3 OR Qualification =4

输出:

{{1}}