Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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_Cakephp_Merge - Fatal编程技术网

Php 同一数组的数组索引合并

Php 同一数组的数组索引合并,php,arrays,cakephp,merge,Php,Arrays,Cakephp,Merge,我遇到了一个问题。我有一个像这样的数组 print_r($log_ret_val); Array ( [0] => Array ( [0] => Array ( [TestingLogDevice] => Array ( [Siteid] => Mirpur_CO ) ) [1] => Array ( [TestingLogDevice] => Array ( [Siteid] => Mirpur_CO )

我遇到了一个问题。我有一个像这样的数组

print_r($log_ret_val);
Array ( [0] => Array ( [0] => Array ( [TestingLogDevice] => Array ( [Siteid] => Mirpur_CO ) ) 
                       [1] => Array ( [TestingLogDevice] => Array ( [Siteid] => Mirpur_CO ) ) 
      ) 
        [1] => Array ( [0] => Array ( [TestingLogDevice] => Array ( [Tempin] => 29 ) ) 
                       [1] => Array ( [TestingLogDevice] => Array ( [Tempin] => 29 ) ) 
      ) 
        [2] => Array ( [0] => Array ( [TestingLogDevice] => Array ( [Date_time] => 18.11.2017 11:03:33 ) ) 
                       [1] => Array ( [TestingLogDevice] => Array ( [Date_time] => 18.11.2017 11:00:31 ) ) 
     ) 
)
Array ( [0] => Array ( [TestingLogDevice] => Array ( [Siteid] => Mirpur_CO [Tempin] => 29 [Date_time] => 18.11.2017 11:24:45 ) ) 
        [1] => Array ( [TestingLogDevice] => Array ( [Siteid] => Mirpur_CO [Tempin] => 28 [Date_time] => 18.11.2017 11:21:43 ) ) 
)
这就是我为这个值写的东西

$log_val        = array();
foreach ($log_ret_val as $key => $valuee) {
    foreach ($valuee as $key => $val) {
        array_push($log_val,$val);
    }
}
print_r($log_val);

Array ( [0] => Array ( [TestingLogDevice] => Array ( [Siteid] => Mirpur_CO ) ) 
        [1] => Array ( [TestingLogDevice] => Array ( [Siteid] => Mirpur_CO ) ) 
        [2] => Array ( [TestingLogDevice] => Array ( [Tempin] => 29 ) )                   
        [3] => Array ( [TestingLogDevice] => Array ( [Tempin] => 28 ) ) 
        [4] => Array ( [TestingLogDevice] => Array ( [Date_time] => 18.11.2017 11:24:45 ) ) 
        [5] => Array ( [TestingLogDevice] => Array ( [Date_time] => 18.11.2017 11:21:43 ) ) 
)
但是我想要的输出是这样的

print_r($log_ret_val);
Array ( [0] => Array ( [0] => Array ( [TestingLogDevice] => Array ( [Siteid] => Mirpur_CO ) ) 
                       [1] => Array ( [TestingLogDevice] => Array ( [Siteid] => Mirpur_CO ) ) 
      ) 
        [1] => Array ( [0] => Array ( [TestingLogDevice] => Array ( [Tempin] => 29 ) ) 
                       [1] => Array ( [TestingLogDevice] => Array ( [Tempin] => 29 ) ) 
      ) 
        [2] => Array ( [0] => Array ( [TestingLogDevice] => Array ( [Date_time] => 18.11.2017 11:03:33 ) ) 
                       [1] => Array ( [TestingLogDevice] => Array ( [Date_time] => 18.11.2017 11:00:31 ) ) 
     ) 
)
Array ( [0] => Array ( [TestingLogDevice] => Array ( [Siteid] => Mirpur_CO [Tempin] => 29 [Date_time] => 18.11.2017 11:24:45 ) ) 
        [1] => Array ( [TestingLogDevice] => Array ( [Siteid] => Mirpur_CO [Tempin] => 28 [Date_time] => 18.11.2017 11:21:43 ) ) 
)

那么,我能做些什么来满足我的期望输出呢。对于您的建议或帮助,请

通过
$log\u ret\u val
提取它的键并使用
array\u merge\u recursive
创建新的数组

$log_ret_val = Array ( "0" => Array ( "0" => Array ( "TestingLogDevice" => Array ( "Siteid" => "Mirpur_CO" ) ) ,
                       "1" => Array ( "TestingLogDevice" => Array ( "Siteid" => "Mirpur_CO" ) ) ,
  ) ,
        "1" => Array ( "0" => Array ( "TestingLogDevice" => Array ( "Tempin" => 29 ) ) ,
                      "1" => Array ( "TestingLogDevice" => Array ( "Tempin" => 29 ) ) ,
  ) ,
        "2" => Array ( "0" => Array ( "TestingLogDevice" => Array ( "Date_time" => "18.11.2017 11:03:33" ) ) ,
                       "1" => Array ( "TestingLogDevice" => Array ( "Date_time" => "18.11.2017 11:00:31" ) ) 
  )
  ); 
$log_val = array();
foreach ($log_ret_val as $key => $value) {
    foreach ($value as $key1 => $value1) {
        if(isset($log_val[$key1]))
            $log_val[$key1] = array_merge_recursive($log_val[$key1],$value1);
        else
            $log_val[$key1] = array_merge_recursive($value1);
    }
}
print_r($log_val);

您能给出
$log\u ret\u val
数组的示例吗?感谢困难,因为我看不出您将如何匹配额外的字段……也许对循环执行
并跳过evens?@Erwin add$log\u ret\u val value能否发布
原始数组
@a.ANoman