这两个数组都是从数据库中取出来的数据。不同的时间段。A:2010-11-12  至 2010-11-17
B:2010-11-06  至 2010-11-11数组A:  
  
 Array
   (
     [0] => Array
        (
            [COUNT_REGISTER] => 120
            [CONVER_PERCENT] => 0.8
            [COUNT_DATE] => 2010-11-12
        )    [1] => Array
        (
            [COUNT_REGISTER] => 198
            [CONVER_PERCENT] => 1.5
            [COUNT_DATE] => 2010-11-13
        )    [2] => Array
        (
            [COUNT_REGISTER] => 862
            [CONVER_PERCENT] => 7.3
            [COUNT_DATE] => 2010-11-14
        )    [3] => Array
        (
            [COUNT_REGISTER] => 2670
            [CONVER_PERCENT] => 216.02
            [COUNT_DATE] => 2010-11-15
        )
    [4] => Array
        (
            [COUNT_REGISTER] => 53
            [CONVER_PERCENT] => 5.2
            [COUNT_DATE] => 2010-11-17
        ))数组B: Array
(
    [0] => Array
        (
            [COUNT_REGISTER] => 3
            [CONVER_PERCENT] => 0.44
            [COUNT_DATE] => 2010-11-06
        )    [1] => Array
        (
            [COUNT_REGISTER] => 1910
            [CONVER_PERCENT] => 169.78
            [COUNT_DATE] => 2010-11-07
        )    [2] => Array
        (
            [COUNT_REGISTER] => 860
            [CONVER_PERCENT] => 9.7
            [COUNT_DATE] => 2010-11-10
        ))
要合并组装成新的数组为:     2010-11-12   120   0.8
  
     2010-11-06   3     0.4
    
     2010-11-13   198     1.5     2010-11-07   1910    169.78     2010-11-14   862     7.3
     
     2010-11-08   0       0.0     2010-11-15   2670      216.02
     
     2010-11-09   0       0.0     2010-11-16   0       0.0     2010-11-10   860     9.7     2010-11-17   53      5.2
 
     2010-11-11    0       0.0
最后的结果就是要是上面这样的,两期的数据做个对比。

解决方案 »

  1.   


    foreach($a as $k=>$v){
       $a_tmp[$v['COUNT_DATE']]=$v;
    }
    foreach($b as $k=>$v){
       $b_tmp[$v['COUNT_DATE']]=$v;
    }
    $a_start = 12;
    $b_start = 6;for($i=0;$i<6;$i++){
        $a_key = "2010-11-".($a_start+$i);
        $b_key = "2010-11-".($b_start+$i);    if(!isset($a_tmp[$a_key])){
            $a_data=0; 
        }
        if(!isset($b_tmp[$b_key])){
            $b_data=0; 
        }
        $data[] = array("a"=>$a_tmp[$a_key]中的数据,"b"=>$b_tmp[$b_key]中的数据);
    }
      

  2.   

        $b_key = "2010-11-".($b_start+$i);不是固定取某个月份的阿,这样子拼有问题的喔。
      

  3.   

    最简单的方法还是做双层遍历,首先取出[COUNT_DATE]的值,再用这个值在第二个数组里进行遍历判断是否在这个A:2010-11-12 至 2010-11-17
    B:2010-11-06 至 2010-11-11区间内即可
      

  4.   


    $arrA = Array(
      Array
      (
      "COUNT_REGISTER" => 120,
      "CONVER_PERCENT" => 0.8,
      "COUNT_DATE" => "2010-11-12",
      ),  Array
      (
      "COUNT_REGISTER" => 198,
      "CONVER_PERCENT" => 1.5,
      "COUNT_DATE" => "2010-11-13",
      ),  Array
      (
      "COUNT_REGISTER" => 862,
      "CONVER_PERCENT" => 7.3,
      "COUNT_DATE" => "2010-11-14",
      ),  Array
      (
      "COUNT_REGISTER" => 2670,
      "CONVER_PERCENT" => 216.02,
      "COUNT_DATE" => "2010-11-15",
      ),   Array
      (
      "COUNT_REGISTER" => 53,
      "CONVER_PERCENT" => 5.2,
      "COUNT_DATE" => "2010-11-17",
      ));$arrB = Array(
      Array
      (
      "COUNT_REGISTER" => 3,
      "CONVER_PERCENT" => 0.44,
      "COUNT_DATE" => "2010-11-06",
      ),   Array
      (
      "COUNT_REGISTER" => 1910,
      "CONVER_PERCENT" => 169.78,
      "COUNT_DATE" => "2010-11-07",
      ),   Array
      (
      "COUNT_REGISTER" => 860,
      "CONVER_PERCENT" => 9.7,
      "COUNT_DATE" => "2010-11-10",
      ));
    $count = count($arrA);
    $newArr = array();
    for($i=0;$i<$count;$i++)
    {
    $newArr[] = $arrA[$i];
    $newArr[] = $arrB[$i];
    }var_dump($newArr);