Jalin
Jalin

Reputation: 95

How can i rearrange a php array without using key names

My array is below i need to arrange like array2 (without use $aa['caption1'] like names directly) arrray1 is

Array
(
    [0] => Array
        (
            [caption1] => Array
                (
                    [0] => gfdhgfjhg
                    [1] => dfhfgjghk
                )

            [caption2] => Array
                (
                    [0] => shgjgh
                    [1] => dhfgkgjl
                )

            [banner_image] => Array
                (
                    [0] => assets/images/page_content/img_namT7.jpg
                    [1] => assets/images/page_content/img_R8mzP.jpg
                )

        )

    [1] => Array
        (
            [heading] => Array
                (
                    [0] => 
                )

            [pragraph] => Array
                (
                    [0] => 
                )

        )
)

arrray2 is(Required format )

Array
(
    [0] => Array
        (
          array('caption1'=>'caption1','caption2'=>'shgjgh','banner_image'=>'assets/images/page_content/img_namT7.jpg'),
          array('caption1'=>'dfhfgjghk','caption2'=>'dhfgkgjl','banner_image'=>'page_content/img_R8mzP.jpg')           
        )

    [1] => Array
        (
           array('heading'=>'','pragraph'=>''),
           array('heading'=>'fgh','pragraph'=>'ghgh'),
        )
)

please any one help me.

Upvotes: 2

Views: 40

Answers (1)

RomanPerekhrest
RomanPerekhrest

Reputation: 92854

The solution using array_keys, array_map and array_combine functions:

// $arr is your initial array
$result = [];
foreach($arr as $v){
    $keys = array_keys($v);
    $data = call_user_func_array('array_map', [null] + $v);
    $result[] = array_map(function($item) use($keys){ 
        return array_combine($keys, $item); 
    }, $data);
}

print_r($result);

The output:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [caption1] => gfdhgfjhg
                    [caption2] => shgjgh
                    [banner_image] => assets/images/page_content/img_namT7.jpg
                )

            [1] => Array
                (
                    [caption1] => dfhfgjghk
                    [caption2] => dhfgkgjl
                    [banner_image] => assets/images/page_content/img_R8mzP.jpg
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [heading] => 
                    [pragraph] => 
                )
        )
)

Upvotes: 1

Related Questions