简体   繁体   English

合并两个数组,一个数组每个 5 个键

[英]Merge two arrays, one array each 5 key

I'm trying to merge 2 arrays but I would like to add my first array each 5 key.我正在尝试合并 2 个数组,但我想每个 5 个键添加我的第一个数组。

$main_list = array(data-main-1, data-main-2, data-main-3, data-main-4, data-main-5, data-main-6, data-main-7, data-main-8, data-main-9, data-main-10); 
$programme_list = array(data-programme-1, data-programme-2, data-programme-3);

$complete_list = array(data-programme-1, data-main-1, data-main-2, data-main-3, data-main-4, data-programme-2, data-main-5, data-main-6, data-main-7, data-main-8, programme-2, data-main-9, data-main-10)

Example :例子 :

  • data-programme-1数据程序-1
  • data-main-1数据主 1
  • data-main-2数据主 2
  • data-main-3数据主 3
  • data-main-4数据主 4
  • data-programme-2数据程序2
  • data-main-5数据主 5
  • data-main-6数据主 6
  • data-main-7数据主 7
  • data-main-8数据主 8
  • data-programme-3 .....数据程序-3 .....

I wrote this but with odd/even system (all works fine but not the solution for me) :我写了这个,但使用奇数/偶数系统(一切正常,但不是我的解决方案):

$main_list = get_field('home_list_main');
$programme_list = get_field('home_list_programme');

$complete_list = array();

foreach($main_list as $key => $value) {
    $complete_list[] = $value;

    if (isset($programme_list[$key])) {
        $complete_list[] = $programme_list[$key];
    }
}

echo $complete_list;

How can I do please ?请问我该怎么办?

If you first split the main list into 5's (using array_chunk() in this example), you can then add the programme followed by the corresponding chunk...如果您首先将主列表拆分为 5 个(在此示例中使用array_chunk() ),则可以添加程序,然后添加相应的块...

$complete_list = [];
$mainChunk = array_chunk($main_list, 5);
foreach ( $programme_list as $key => $programme )   {
    $complete_list[] = $programme;
    $complete_list = array_merge($complete_list, $mainChunk[$key] ?? []);
}

Using $mainChunk[$key] ?? []使用$mainChunk[$key] ?? [] $mainChunk[$key] ?? [] in case their isn't data for this item and just default it to an empty array. $mainChunk[$key] ?? []以防它们不是此项的数据,而只是将其默认为空数组。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM