1

我有这个数组循环:

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

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

4

4 回答 4

4
$fn = function($v) { return _e($v,'holidayge'); };
$arr = array_map($fn, $event_entrance );
echo implode(',', $arr);
于 2012-10-30T17:39:17.807 回答
2

两种选择:

  • 用于implode将东西放在一起,它可以轻松为您处理这种边缘情况。说真的,内爆很棒
  • 确定您是否在最后一个元素上(可能有一个计数,并通过访问元素键),如果它是最后一个元素,则省略逗号。
于 2012-10-30T17:14:37.467 回答
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++;
}
于 2012-10-30T17:16:59.400 回答
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;
}
于 2012-10-30T17:17:15.750 回答