有点类似合并数组的问题,一直想不到一个办法,希望各位帮帮忙。
给出需要例子解释:原始数组:
$a = array( [0]=>  array( [0]=> array (   [0] =>  array(  'd'=> array('0a1','0a2','0a3'), 'm'=>array('A1')  )      
                                          [1] =>  array(  'd'=> array('0b1','0b2','0b3'), 'm'=>array('B1')  )
                                          [3] =>.........
                                          [4]=>.......
                                          ...
                                          [n]........
                                      )
                          [1]=> array (   [0] =>  array(  'd'=> array('0a1','0a2','0a3'), 'm'=>array('A2')  )      
                                          [1] =>  array(  'd'=> array('0b1','0b2','0b3'), 'm'=>array('B2')  )
                                          [3] =>.........
                                          [4]=>.......
                                          ...
                                          [n]........和以上类似
                                      )
                          [2]=>....
                          [3]=>....
                          ...
                          [m]....和以上类似
                       )           [1]=>   array( [0]=> array (   [0] =>  array(  'd'=> array('1a1','1a2','1a3'), 'm'=>array('A11')  )      
                                          [1] =>  array(  'd'=> array('1b1','1b2','1b3'), 'm'=>array('B11')  )
                                          [3] =>.........
                                          [4]=>.......
                                          ...
                                          [n]........和以上类似
                                      )
                          [1]=> array (   [0] =>  array(  'd'=> array('1a1','1a2','1a3'), 'm'=>array('A22')  )      
                                          [1] =>  array(  'd'=> array('1b1','1b2','1b3'), 'm'=>array('B22')  )
                                          [3] =>.........
                                          [4]=>.......
                                          ...
                                          [n]........和以上类似
                                      )
                          [2]=>....
                          [3]=>....
                          ...
                          [m]...和以上类似
                       )
            [3].....
            [4]....
            ...
            [P]...和以上类似         )现在要将上述数组中最后一维 具有相同array('d')的值的那个数组中的array('m')加到一起,并将数组减少2维
结果如下:
$a = array(  [0] =>  array(  'd'=> array('0a1','0a2','0a3'), 'm'=>array('A1',A2.........)  )      
             [1] =>  array(  'd'=> array('0b1','0b2','0b3'), 'm'=>array('B1',B2.........)  )
             [3] =>.........
             [4]=>.......
              ...
             [n]........
             [n+1] =>  array(  'd'=> array('1a1','1a2','1a3'), 'm'=>array('A1',A2.........)  )      
             [n+2] =>  array(  'd'=> array('1b1','1b2','1b3'), 'm'=>array('B1',B2.........)  )
             [n+3] =>.........
             [n+4]=>.......
              ...
             [n+n]........
          )
                       
 写的可能有点乱了。。希望各位能看懂吧。
我把最原始的数组搞的那么复杂,纯粹是为了方便合并。                   
                 

解决方案 »

  1.   

    上面结果里的[n+1]那边开始应该改是  [n+1] =>  array(  'd'=> array('1a1','1a2','1a3'), 'm'=>array('A11',A22.........)  )  这样的,写错了
      

  2.   

    分两步做
    1、减少维数
    foreach($a as $a1) {
      foreach($a1 as $a2) {
        foreach($a2 as $r) {
          $o[] = $r;
        }
      }
    }
    得到形如
    Array (
     [0] => Array ( [d] => Array ( [0] => 0a1 [1] => 0a2 [2] => 0a3 ) [m] => Array ( [0] => A1 ) )
     [1] => Array ( [d] => Array ( [0] => 0b1 [1] => 0b2 [2] => 0b3 ) [m] => Array ( [0] => B1 ) )
    )
    这样的数组2、时间太晚了,明天再说
      

  3.   

    本帖最后由 xuzuning 于 2009-05-27 08:57:07 编辑