Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据条件将值从一个关联数组添加到另一个关联数组_Php_Arrays_Format_Traversal_Associative - Fatal编程技术网

Php 根据条件将值从一个关联数组添加到另一个关联数组

Php 根据条件将值从一个关联数组添加到另一个关联数组,php,arrays,format,traversal,associative,Php,Arrays,Format,Traversal,Associative,到目前为止,我有三个数组,它们像这样从数据库返回值(经过多次格式化) 具有类似值的第二个数组: [0]=>array( [0]=>'Mar', [1]=>22), [1]=>array( [0]=>'Apr', [1]=> 1), [2]=>array( [0]=>'May', [1]=>2), [3]=>array( [0]=>

到目前为止,我有三个数组,它们像这样从数据库返回值(经过多次格式化)

具有类似值的第二个数组:

[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”在不包含值的地方是如何填写的。老实说,这是我遇到过的最复杂的数组问题,其原因是很难遍历数组。我特别需要数组是这种结构,因为我需要将它发送到谷歌可视化区域图

如果你对这个问题有任何建议,请发帖子

提前非常感谢:)

@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
                  )

)

有办法吗?再次非常感谢:)

这不是一个困难的问题,如果我理解正确的话,您有一个包含月份和整数的数组。假设有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
$arrays=array($array1、$array2、$array3);
$final=array();
$index=1;
foreach($array作为$array){
foreach($ar作为数组){
如果(!isset($final[$ar[0]])){
$final[$ar[0]]=数组($ar[0],$index=>$ar[1]);
}否则{
$final[$ar[0]][$index]=$ar[1];
}
}
$index++;
}
$final=数组_值($final);
对于($x=0;$x
你太棒了!!>。<非常感谢你。这要花我很长时间才能弄明白。还有一个小问题。请看我的最新帖子。@LucM我知道让别人帮你做作业是不道德的。如果至少对我有意义的话,我会把我试过的东西贴出来。但是我很难弄清楚如何遍历这个数组,因为它不仅仅是关联的,它是索引的,而且是内部关联的。我甚至试着做了一个(手动)类似的,但它本身不起作用
 $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