Laravel 5 Объединение двух многомерных массивов - PullRequest
0 голосов
/ 15 марта 2019

Я получаю два массива: один пользователь и одну рекламу. Мне нужно сделать еще одну, объединив эти два массива таким образом, чтобы после каждых пяти пользователей я получал одно объявление.Заранее спасибо.

1 Ответ

0 голосов
/ 16 марта 2019

Мне нравится использовать коллекции Laravel для таких вещей:

$users = range(0, 19);                      // users are numbers
$ads = range('a', 'd');                     // ads are letters

$users = collect($users);                   // create a Collection from the array
$ads = collect($ads);

$result = $users->chunk(5)                  // break into chunks of five
    ->map(function($chunk) use (&$ads){
        return $chunk->push($ads->shift()); // append an ad to each chunk
    })->flatten()                           // combine all the chunks back together
    ->toArray();                            // change the Collection back to an array

dump($result);

Дает:

array:24 [
  0 => 0
  1 => 1
  2 => 2
  3 => 3
  4 => 4
  5 => "a"
  6 => 5
  7 => 6
  8 => 7
  9 => 8
  10 => 9
  11 => "b"
  12 => 10
  13 => 11
  14 => 12
  15 => 13
  16 => 14
  17 => "c"
  18 => 15
  19 => 16
  20 => 17
  21 => 18
  22 => 19
  23 => "d"
]
...