2

我正在从我的表单中写一个字符串,我想从末尾删除最后一个逗号。我知道我可以使用 rtrim(),但我不明白如何从循环中返回变量。我敢肯定这是一个简单的答案,只是超级困惑。谢谢!

if (isset($_POST['submit'])) {

foreach ( $_POST['data'] as $data )
{

    echo $data['Monday'];
    echo $data['Tuesday'];
    echo $data['Wednesday'];
    echo $data['Thursday'];
    echo $data['Friday'];
    echo $data['Saturday'];
    echo $data['Sunday'];
    echo ", ";
}

} // end if
4

4 回答 4

3

您可以检查您是否在最后一个元素上,如果是,则跳过打印逗号:

end($_POST['data');             // fast forward to the end of the array
$lastKey = key($_POST['data');  // and remember what the last key is

foreach ( $_POST['data'] as $key => $data )
{
    echo $data['Monday'];
    echo $data['Tuesday'];
    echo $data['Wednesday'];
    echo $data['Thursday'];
    echo $data['Friday'];
    echo $data['Saturday'];
    echo $data['Sunday'];
    if ($key !== $lastKey) echo ", ";
}

这种方法对我来说更干净:预防胜于治疗。

于 2013-07-03T21:45:47.403 回答
1

与其立即回显数据,不如将其存储在缓冲区中......

if (isset($_POST['submit'])) {
  $buffer = "";
  foreach ( $_POST['data'] as $data )
  {
      $buffer .= $data['Monday'];
      $buffer .= $data['Tuesday'];
      $buffer .= $data['Wednesday'];
      $buffer .= $data['Thursday'];
      $buffer .= $data['Friday'];
      $buffer .= $data['Saturday'];
      $buffer .=  $data['Sunday'];
      $buffer .= ", ";
  }
  $buffer = rtrim($buffer, ", ");
  echo $buffer;
} // end if

或者,甚至更短:

if (isset($_POST['submit'])) {
  implode(", ", $data);
} // end if

假设$data只有那些周一至周日的钥匙..

于 2013-07-03T21:42:31.723 回答
1

你需要有一个变量

$str = null;
if (isset($_POST['submit'])) {

    foreach ( $_POST['data'] as $data )
    {

        $str .= $data['Monday'] .
        $data['Tuesday'] .
        $data['Wednesday'] .
        $data['Thursday'] .
        $data['Friday'] .
        $data['Saturday'] . 
        $data['Sunday'] . 
        ", ";

    }
$str = substr($str,0,-2);
}

然后你就有了数据$str,你可以在其中回显或做一些事情

于 2013-07-03T21:44:03.957 回答
1

您可以获得的最后一个索引,$_POST['data']并且在达到时根本不回显a ,

end($_POST['data']);
$last_key = key($_POST['data']);
foreach ($_POST['data'] as $key => $data) {
    // echoes here
    if ($key != $last_key) {
        echo ',';
    }
}
于 2013-07-03T21:45:41.977 回答