在四足跳跃中将两个 PHP 数组合并为多维数组

Merge Two PHP Arrays into Multidimensional Array in Quadruped Jumps

我有两个数组,我想以不同的方式合并它们。假设我有以下数组:

$q_id = array(0 => 7, 1 => 8, 2 => 9)
$a_id = array(
      0 => 24, 
      1 => 25, 
      2 => 26, 
      3 => 27, 
      4 => 28,
      5 => 29, 
      6 => 30, 
      7 => 31, 
      8 => 32, 
      9 => 33,
      10 => 34, 
      11 => 35, 

)

我的最终目标是:

array(

      [7] => array
        (
          [0] => 24
          [1] => 25
          [2] => 26
          [3] => 27
        )
      [8] => array
        (
          [4] => 28
          [5] => 29
          [6] => 30
          [7] => 31
        )
      [9] => array
        (
          [8] => 32
          [9] => 33
          [10] => 34
          [11] => 35
        )
)

内置的数组操作函数不能满足我的需要。取自 Whosebug 上的 post 的递归合并代码:Combine arrays to form multidimensional array in php,创建一个数组,其中作为子数组执行的三个键中的每一个仅接收每组四组的第一个值:

     array(

      [7] => array
        (
          [0] => 24
        )
      [8] => array
        (
          [4] => 28
        )
      [9] => array
        (
          [8] => 32
        )

我肯定解决方案在于递归(可能修改上面 link 中提供的代码片段),但我只是不知道该怎么做。

将不胜感激。

这应该适合你:

(这里我只是 array_combine() the $q_id array as keys with the $a_id array as values. Where I use X chunks of the size count($a_id)/count($q_id) with array_chunk() 值数组)

<?php

    $q_id = [7, 8, 9];
    $a_id = [24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,];

    $result = array_combine($q_id, array_chunk($a_id, count($a_id)/count($q_id), TRUE));
    print_r($result);

?>

输出:

Array
(
    [7] => Array
        (
            [0] => 24
            [1] => 25
            [2] => 26
            [3] => 27
        )

    [8] => Array
        (
            [4] => 28
            [5] => 29
            [6] => 30
            [7] => 31
        )

    [9] => Array
        (
            [8] => 32
            [9] => 33
            [10] => 34
            [11] => 35
        )

)