0

I have this multidimensional array structure:

Array
(
    [TXN_DATE] => Array
        (
            [0] => 21-AUG-21
            [1] => 22-AUG-21
            [2] => 23-AUG-21
            [3] => 24-AUG-21
        )
    [O_TXN] => Array
        (
            [0] =>50
            [1] =>60
            [2] =>70
            [3] =>80
        )
    [O_TXN_AMT] => Array
        (
            [0] =>5000
            [1] =>6000
            [2] =>7000
            [3] =>8000
        )

    [R_TXN] => Array
        (
            [0] => 20
            [1] => 30
            [2] => 40
            [3] => 85
        )

    [R_TXN_AMT] => Array
        (
            [0] => 6000
            [1] => 7000
            [2] => 8000
            [3] => 8500
        )
)

What I wanted is to combine the values with the same index number. My desired output should be:

Array
(
    [0] => Array
        (
            [TXN_DATE] => 21-AUG-21
            [O_TXN] => 50
            [O_TXN_AMT] => 5000
            [R_TXN] => 20
            [R_TXN_AMT] =>6000
        )
    [1] => Array
        (
            [TXN_DATE] => 22-AUG-21
            [O_TXN] => 60
            [O_TXN_AMT] => 6000
            [R_TXN] => 30
            [R_TXN_AMT] =>7000
        )
    [2] => Array
        (
            [TXN_DATE] => 23-AUG-21
            [O_TXN] => 70
            [O_TXN_AMT] => 7000
            [R_TXN] => 40
            [R_TXN_AMT] =>8000
        )
    [3] => Array
        (
            [TXN_DATE] => 24-AUG-21
            [O_TXN] => 80
            [O_TXN_AMT] => 8000
            [R_TXN] => 85
            [R_TXN_AMT] =>8500
        )
)
A l w a y s S u n n y
  • 36,497
  • 8
  • 60
  • 103

1 Answers1

1

One way with two foreach() loop,

$output = [];
foreach($input as $k=>$v){
    foreach($v as $i=>$r){
        $output[$i][$k] = $v[$i];
    }
}

Working Demo: https://3v4l.org/2cOrD

A l w a y s S u n n y
  • 36,497
  • 8
  • 60
  • 103