1

I want to convert a multi array in 2-D array. I have following result of multi array.

Array
(
[1] => Array
    (
        [0] => Array
            (
                [0] => Id
                [1] => Name
                [2] => Fname
                [3] => School
                [4] => Photo
            )

    )

[2] => Array
    (
        [0] => Array
            (
                [0] => 32
                [1] => kamal
                [2] => hjhbg
                [3] => hnp
                [4] => B612_16.jpg
            )

    )

[3] => Array
    (
        [0] => Array
            (
                [0] => 33
                [1] => dg
                [2] => fa
                [3] => f
                [4] => bg.jpg
            )

    )

[4] => Array
    (
        [0] => Array
            (
                [0] => 35
                [1] => mohit
                [2] => bc
                [3] => jhbvj
                [4] => B612.jpg
            )

    )

  )

Now I need to convert this array in below format.

Array
(
[0] => Array
    (
                [0] => Id
                [1] => Name
                [2] => Fname
                [3] => School
                [4] => Photo

    )

[1] => Array
    (
                [0] => 32
                [1] => kamal
                [2] => hjhbg
                [3] => hnp
                [4] => B612_16.jpg

    )

[2] => Array
    (
                [0] => 33
                [1] => dg
                [2] => fa
                [3] => f
                [4] => bg.jpg

    )

[3] => Array
    (
                [0] => 35
                [1] => mohit
                [2] => bc
                [3] => jhbvj
                [4] => B612.jpg
    )

    )
glennsl
  • 28,186
  • 12
  • 57
  • 75
Ramkishan Suthar
  • 403
  • 1
  • 7
  • 26

3 Answers3

1

Try this

function array_to1d($a) {
    $out = array();
    foreach ($a as $b) {
        foreach ($b as $c) {
            if (isset($c)) {
                $out[] = $c;
            }
        }
    }
    return $out;
}
    echo "<pre>"; print_r(array_to1d($array)); // $array your array name
0

You just have to do

$two_d_array = array_values($three_d_array);
glennsl
  • 28,186
  • 12
  • 57
  • 75
Sagar Arora
  • 1,743
  • 1
  • 10
  • 19
0

The shortest solution would be using array_walk() here:

array_walk($array, function(&$v) {
    $v = $v[0];
});
Indrasis Datta
  • 8,692
  • 2
  • 14
  • 32