0

fooeach ループが終了するまで、foreach ループで $current_account を取得しようとしています。最後に到達するまで、配列内の次の要素を提供する next 関数を使用しています。配列の最後に到達したら、配列の最初の要素に移動するにはどうすればよいですか?

$search_tags = array(
    "happy",
    "summer",
    "beach",
    "glasses",
    "umbrella",
    "funny",
    "people",
    "music",
    "rap"
);

$accounts = array(
    "account A",
    "account B",
    "account C"
);

foreach ($search_tags as $tag) {
    $current_account = current($accounts);
    print_r($current_account."\n");

};

したがって、この場合、結果は次のようになります。

アカウント B アカウント C アカウント A アカウント B アカウント C アカウント A アカウント B アカウント C アカウント A

しかし、私は以下を取得しています:

アカウント B アカウント C

4

2 に答える 2

4

使用するInfiniteIterator

$accounts = new InfiniteIterator(new ArrayIterator($accounts));
$accounts->rewind();

foreach($search_tags as $tag) {
    echo ucfirst($accounts->current()), PHP_EOL;
    $accounts->next();
}

ライブデモを見る

于 2013-06-03T11:18:12.250 に答える
0

以下のように、現在のインデックスに応じてインデックスによってアカウント要素にアクセスするなど、これを行う簡単な方法は他にもあります。

foreach ($search_tags as $index => $tags) {
    print_r($accounts[$index % count($accounts)] . "\n");
}

どの出力;

account A
account B
account C
account A
account B
account C
account A
account B
account C
于 2013-06-03T11:26:52.280 に答える