2

I have faced a problem. I have an array looks like this

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

And this is what I write for that value

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

But my desired output looks like this

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

So what can I do meet up my desired output. For your kind suggestion or help please

4
  • Can you give sample for $log_ret_val array? Thanks Commented Nov 18, 2017 at 6:32
  • difficult as I don't see how you are going to match up the extra fields....maybe do a for loop and skip evens? Commented Nov 18, 2017 at 6:32
  • @Erwin add $log_ret_val value Commented Nov 18, 2017 at 6:43
  • could you post your raw array @A.ANoman Commented Nov 18, 2017 at 6:49

1 Answer 1

2

Loop through $log_ret_val extract it key and use array_merge_recursive to create new array

$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

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.