Turn an array into pieces

I want to change the array to two elements at each step. If I have an array [11,12,13,14,15,16], I want to cancel the first two elements [11,12], and then two more elements [13,14], etc. The last array should be [12, 11,14,13,16,15]; My code is below:

function reverseArray($array, $size){
    $reversed_array = array();

    $chunk = array_chunk($array, $size);
    $chunk_length = count($chunk);  
    for($i = 0; $i < $chunk_length; $i++){
        $reversed_array[$i] = array_reverse( ($chunk[$i]) );            
    }

    return $reversed_array;
}

$array = array(12,13,14,15);
$size = 2;
print_r(reverseArray($array,$size));


Array
(
    [0] => Array
        (
            [0] => 13
            [1] => 12
        )

    [1] => Array
        (
            [0] => 15
            [1] => 14
        )

)

How can I combine these two arrays into one? I tried using array_merge but don't know how to use it in my function. Any idea?

+4
source share
4 answers
function reverseArray($array, $size){
    $reversed_array = array();

    $chunk = array_chunk($array, $size);
    $chunk_length = count($chunk);  
    for($i = 0; $i < $chunk_length; $i++){
        $reversed_array = array_merge($reversed_array,array_reverse( ($chunk[$i]) ));            
    }

    return $reversed_array;
}
+1
source

You can use call_user_func_arrayalong with array_reverseand array_chunkto achieve your goal, for example

$arr = [11,12,13,14,15,16];
$result = call_user_func_array('array_merge',array_reverse(array_chunk(array_reverse($arr), 2)));
print_r($result);

Fiddle

+1
source

$input = call_user_func_array('array_merge', $input);


, ,

function reverseArray($array, $size)
{
    return call_user_func_array('array_merge', array_map('array_reverse', array_chunk($array, $size)));
}
0

array_merge call_user_func_array.

$array = call_user_func_array("array_merge", $chunks);

array_merge $chunks[0], $chunks[1], $chunks[…] .

arrayReverse array_map, btw:

$chunks = array_chunk($array, $size);
$chunks = array_map("array_reverse", $chunks);
0

All Articles