2017-11-18 83 views
2

我遇到了問題。我有一個數組看起來像這樣數組索引合併相同的數組

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

這是我寫的那個值

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

但我需要的輸出看起來像這樣

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

所以我能做些什麼滿足達到我想要的輸出。爲了您的友好建議或幫助,請

+0

你可以給'$ log_ret_val'陣列的樣品?謝謝 – Erwin

+0

很難,因爲我沒有看到你將如何匹配額外的領域....也許做一個「for循環」,並跳過evens? – Forbs

+0

@Erwin add $ log_ret_val value –

回答

2

遍歷$log_ret_val解壓密鑰,並用array_merge_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); 

DEMO

+0

幹得好。有用。 –

+0

很高興幫助@ A.ANoman –