如何删除最后一个数组项后的逗号?

时间:2012-10-30 17:12:06

标签: php loops

我有这个数组循环:

 foreach ( $event_entrance as $event_entrance_s ) {
    _e($event_entrance_s,'holidayge');
    echo ', ';
 }

我想在最后一个循环结束时摆脱comma 有任何想法吗?看似简单,但它不适合我:)。

4 个答案:

答案 0 :(得分:4)

$fn = function($v) { return _e($v,'holidayge'); };
$arr = array_map($fn, $event_entrance );
echo implode(',', $arr);

答案 1 :(得分:2)

两个选项:

  • 使用implode将事物放在一起,它可以轻松处理这个边缘情况。说真的,内爆很棒
  • 确定你是否在最后一个元素上(可能有一个计数,并通过访问元素键)并省略逗号,如果它是最后一个元素。

答案 2 :(得分:0)

尝试这样的事情:

$event_entrance_count = count($event_entrance);

$loop_number = 1;

foreach ( $event_entrance as $event_entrance_s ) {
     _e($event_entrance_s,'holidayge');
     if(!$loop_number == $event_entrance_count) {
         echo ', ';
     }
     $loop_number++;
}

答案 3 :(得分:0)

怎么样......

$limit = count($event_entrance);

foreach ($event_entrance as $key => $event_entrance_s) {
    _e($event_entrance_s,'holidayge');
    if ($key < ($limit-1)) {
        echo ', ';
    }
}

只要您的键是整数和顺序,这应该完全按照您的意图工作。如果您使用的是整数,但它们没有任何特定的顺序,那么在foreach()循环之前放置它将解决这个问题:

$event_entrance = array_values($event_entrance);

如果您使用字符串作为键而不是整数,请尝试以下操作:

$limit = count($event_entrance);
$i = 1;
foreach ($event_entrance as $event_entrance_s) {
    _e($event_entrance_s,'holidayge');
    if ($i < $limit) {
        echo ', ';
    }
    ++$i;
}