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

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 に答える