拆分和组合两个数组Array

时间:2012-02-12 20:04:06

标签: php arrays multidimensional-array split

我有一个带有重复值的数组,比如

{1
2
3
4
5
6
7
8
9
10
11
12}

和另一个数据

的数组
{itema
itemb
itemc
itemd}

我想分割第一个数组,然后与我的输出看起来像的第二个数组合并。

{
itema=>1,5,9
itemb=>2,6,10
itemc=>3,7,11
itemd=>4,8,12
}

我想对数组的元素进行分组。基本上它们是使用xpath获得的,并且4个值组合在一起以成为关于单个主题的信息。我的基本目的是修改第一个数组,以便我可以一起打印相同域的值...我想打印

  

  • 1,2,3,4,   
  • -5,6,7,8-   
  • 9,10,11,12

  • 问题可能看起来很奇怪,但我很难完全描述它......对不起

    2 个答案:

    答案 0 :(得分:2)

    假设你所说的第一个数组是一个多维数组,如

    $firstArray = { a={1,2,3},b={1,2,3} };
    

    您需要做的是遍历每个数组并在此过程中创建一个新数组。

    $masterArray = {itema,itemb,itemc,itemd};
    
    
    $newArray = new Array();
    for ($i = 0; $i<$masterArray.length; $i++) {
       for ($j = 0; $j<$firstArray.length; $j++){
          $newArray[$i] = $masterArray[$i]=>$firstArray[$j][$i];
       }
    }
    
    var_dump($newArray);
    

    我自己没有对代码进行过测试,因此我无法说它完美无缺,但这基本上就是你想要做的。 随意提问。

    编辑:作为讨论的结果,我发现使用数组块函数做了OP想要的,但不是问题。

    答案 1 :(得分:0)

    这样的事情:

    $a = array(1,2,3,4,5,6,7,8,9,10,11,12);
    $b = array('a', 'b', 'c', 'd');
    $aLength = count($a);
    $bLength = count($b);
    $c = array();
    for ($i = 0; $i < $bLength; ++$i) {
        $c[$b[$i]] = array();
        $j = $i;
        while ($j < $aLength) {
            $c[$b[$i]][] = $a[$j];
            $j += $bLength;
        }
    }
    var_dump($c);