首页 > 解决方案 > Laravel 5 合并两个多维数组

问题描述

我得到两个数组一个用户和一个广告我必须通过合并这两个数组来制作另一个数组,这样每五个用户我就会得到一个广告。提前致谢。

标签: arrayslaravelarray-merge

解决方案


我喜欢使用 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"
]

推荐阅读