2013-06-23 131 views
2

到目前为止,我有三个阵列,其从这样的数据库返回值(多格式后)添加值从一个关联数组到另一个条件

[0]=>array(
      [0]=>'Apr', [1]=> 1), 
[1]=>array(
      [0]=>'May', [1]=>2), 
[2]=>array(
      [0]=>'Jun', [1]=>23) 

的第二阵列具有相似的值:

[0]=>array(
      [0]=>'Mar', [1]=>22),  
[1]=>array(
      [0]=>'Apr', [1]=> 1), 
[2]=>array(
      [0]=>'May', [1]=>2), 
[3]=>array(
      [0]=>'Jun', [1]=>25) 

而第三种:

[0]=>array(
      [0]=>'Jan', [1]=>50),  
[1]=>array(
      [0]=>'Feb', [1]=> 20), 
[2]=>array(
      [0]=>'Mar', [1]=>16), 
[3]=>array(
      [0]=>'Jun', [1]=>5) 

这是如何我试图让他们成为:

[0]=>array(
      [0]=>'Month', [1]=>'Calc1', [2]=>'Calc2', [3]=>'Calc3'),  
[1]=>array(
      [0]=>'Jan', [1]=>0, [2]=>0, [3]=>50), 
[2]=>array(
      [0]=>'Feb', [1]=>0, [2]=>0, [3]=>20), 
[3]=>array(
      [0]=>'Mar', [1]=>0, [2]=>22, [3]=>16), 
[4]=>array(
      [0]=>'Apr', [1]=>1, [2]=>1, [3]=>0), 
[5]=>array(
      [0]=>'May', [1]=>2, [2]=>2, [3]=>0), 
[6]=>array(
      [0]=>'Jun', [1]=>23, [2]=>25, [3]=>5) 

请注意'0'是如何在没有值的地方填充的。老实说,这是我遇到过的最复杂的阵列问题,原因是难以遍历阵列。我特别需要这个数组作为这个结构,因为我需要将它发送给Google可视化区域图表。

如果您发现此问题的任何建议,请发帖。

预先感谢您:)

这么多@ DevZer0: 这是输出我得到(与我的真实数据)。请注意如何月份都在重复:

array(
     [0] => 
      array(
        [0] =>'Month' 
        [1] =>'Calc1' 
        [2] =>'Calc2' 
        [3] =>'Calc3' 
       ) 
     [1] => 
      array(

        [0] =>'Apr' 
        [1] =>1 
        [2] =>0 
        [3] =>0 
       ) 
     [2] => 
      array(

        [0] =>'Jun' 
        [1] =>9 
        [2] =>0 
        [3] =>0 
       ) 
     [3] => 
      array(

        [0] =>'Apr' 
        [1] =>0 
        [2] =>1 
        [3] =>0 
       ) 
     [4] => 
        array(

        [0] =>'May' 
        [1] =>0 
        [2] =>2 
        [3] =>0 
       ) 
     [5] => 
        array(

        [0] =>'Jun' 
        [1] =>0 
        [2] =>23 
        [3] =>0 
       ) 
     [6] => 
        array(

        [0] =>'Apr' 
        [1] =>0 
        [2] =>0 
        [3] =>1 
       ) 
     [7] => 
        array(

        [0] =>'May' 
        [1] =>0 
        [2] =>0 
        [3] =>3 
       ) 
     [8] => 
        array(

        [0] =>'Jun' 
        [1] =>0 
        [2] =>0 
        [3] =>27 
       ) 
) 

我想他们的级联格式为:

array(
     [0] => 
      array(
        [0] =>'Month' 
        [1] =>'Calc1' 
        [2] =>'Calc2' 
        [3] =>'Calc3' 
       ) 
     [1] => 
      array(

        [0] =>'Apr' 
        [1] =>1 
        [2] =>1 
        [3] =>1 
       ) 
     [2] => 
      array(

        [0] =>'May' 
        [1] =>0 
        [2] =>2 
        [3] =>3 
       ) 

     [3] => 
      array(

        [0] =>'Jun' 
        [1] =>9 
        [2] =>23 
        [3] =>27 
       ) 

) 

有没有办法做到这一点?再次感谢你:)

+0

那你试试? –

+0

@LucM我知道让别人做家庭作业不道德。如果它对我至少有意义,我会发布我所尝试的。但是我很难搞清楚如何遍历这个数组,因为这不仅仅是联想性的,它还是索引和内部联想。我甚至尝试制作一个(手动)类似于它,并且它本身不起作用O.O –

回答

3

这不是一个难题,如果我理解正确,你有数组有月和一个整数。让我们假设你有3个数组称为$array1$array2$array3

$arrays = array($array1, $array2, $array3); 
$final = array(); 
$index = 1; 
foreach ($arrays as $array) { 
    foreach ($array as $ar) { 
      if (!isset($final[$ar[0]])) { 
       $final[$ar[0]] = array($ar[0], $index => $ar[1]); 
      } else { 
       $final[$ar[0]][$index] = $ar[1]; 
      } 
    } 
    $index++; 
} 

$final = array_values($final); 

for($x=0; $x < count($final); $x++) { 
     for($i=1; $i < 4; $i++) { 
      if (!isset($final[$x][$i])) $final[$x][$i] = "0"; 
     } 
} 

$header = array("Month", "Calc1", "Calc2", "Calc3"); 
array_unshift($final, $header); 

var_dump($final); //will have your resulting array 
+0

你太棒了! >。<非常感谢。这会让我觉得永恒。还有一个轻微的问题。请参阅我更新的帖子。 –

+0

一刻让我修复代码 – DevZer0

+1

请看看更新的代码谢谢 – DevZer0

相关问题