PHP Foreach 循环结束


PHP Foreach loop ending

如何使最终的 foreach 实例在没有 , 字符的情况下结束?就目前而言,$var 2 的每个实例后面都跟着一个 、 字符。要遵循的代码,提前感谢。

foreach($tags as $var1 => $var2) {
    if($_SESSION[$var1]!="off")
    {
    include($var2);
    echo",";    
    //needs to include no , character on the last instance.
    }
    else
    {
    echo $var1;
    }
}

在 foreach 中,将echo ",";更改为以下内容:

if (end($tags) != $var2) {
  echo ",";
}

这样做将通过将当前索引与 $tags 数组的最后一个索引进行比较来检查您是否在最后一个索引中。单击此处查看有关end()函数的 PHP wiki。

使用它

,您可以检索带有end()的最后一个元素,并获取与当前键进行比较key()的关键:

foreach($tags as $var1 => $var2) {
    if($_SESSION[$var1]!="off")
    {
        include($var2);
        //needs to include no , character on the last instance.
        if(key(end($tags)) !== $var1)
        {
            echo",";
        }
    }
    else
    {
        echo $var1;
    }
}

这将帮助你

 $result = '';
    foreach($tags as $var1 =>$var2) {
        $result .= $var2.',';
    }
    $result = rtrim($result,',');
    echo $result;

尝试使用 end() 函数获取最后一项:

$last_item = end(array_keys($tags));
foreach($tags as $var1 => $var2) {
    if($_SESSION[$var1]!="off") {
    {
        include($var2);
        if($var1 !== $last_key) {
            echo",";    
        }
    //needs to include no , character on the last instance.
    }
    else
    {
        echo $var1;
    }
}

一种检查最后一个元素并回显逗号(,) 的方法

$numItems = count($tags );
$i = 0;
foreach($tags  as $var1 =>$var2) {
if($_SESSION[$var1]!="off")
{
include($var2);
if(++$i != $numItems) {
echo ",";
}
}
else
{
echo $var1;
}
}  
首先将所有

回声插入字符串中。然后使用preg_replace函数删除","的最终实例:

$str = preg_replace('/',$/', '', $str);

另一种方法是使用计数器:

$len = count($tags);  
$iter = 0;
foreach($tags as $var1 => $var2) {
        if($_SESSION[$var1]!="off")
        {
        include($var2);
        if($iter != $len-1)
          echo",";    
        //needs to include no , character on the last instance.
        }
        else
        {
        echo $var1;
        }
      $iter++;
    }

结束() 函数的另一种方式

foreach($tags as $var1 => $var2) {
    if($_SESSION[$var1]!="off")
    {
    include($var2);
    if (end($tags) != $var2) {
       echo",";    
    //needs to include no , character on the last instance.
    }
    else
    {
    echo $var1;
    }
}