skip to Main Content

I am using this kind of array

array[
    0 => 'top left',
    1 => 'top right',
];
array[
    0 => 'Switch Up',
    1 => 'Switch Down',
];

My desired output should be like

    array[
        0 => 'top left',
        1 => 'Switch Up',
    ];
    array[
        0 => 'top right',
        1 => 'Switch Down',
    ];

Some one please help me.

2

Answers


  1. You should write your own function like that:

    Inputs:
    
    $alignments = [
        'top left',
        'top right',
    ];
    
    $switches = [
        'Switch Up',
        'Switch Down',
    ];
    
    $result = [];
    
    foreach ($alignments as $index => $alignment) {
        $result[] = [
            'alignment' => $alignment,
            'switches' => $switches[$index] ?? null,
        ];
    }
    
    print_r($result);
    
    Login or Signup to reply.
  2. Here’s an example of the use of array_column():

    $alignments = [
        'top left',
        'top right',
    ];
    
    $switches = [
        'Switch Up',
        'Switch Down',
    ];
    
    $combined = [$alignments, $switches];
    
    var_export(array_column($combined, 0));
    var_export(array_column($combined, 1));
    

    The output would be:

    array (
      0 => 'top left',
      1 => 'Switch Up',
    )
    array (
      0 => 'top right',
      1 => 'Switch Down',
    )
    

    For a demo see: https://3v4l.org/msjJs

    This solution is not self-evident, if you’re unfamiliar with it.

    The $combined array is 2-dimensional, and looks like this:

    array (
      0 => array (
        0 => 'top left',
        1 => 'top right',
      ),
      1 => array (
        0 => 'Switch Up',
        1 => 'Switch Down',
      ),
    )
    

    With array_column($combined, 0) you get all the values with the zero keys from the nested arrays. With array_column($combined, 1) you get all values with key = 1.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search