Как красиво разбить массив на PHP?

$out = [1, 2, 3, 4, 5, 6, 7, 8];

Нужно получить на выходе: 1 5 2 6 3 7 4 8 По логике, делим массив на 2 части, и после первого элемента добавляем второй из другого массива.

Внутри массива не только числа, к числам не нужно привязываться. Как красиво это сделать?

Красивее чем:

$out  = array_chunk($out, ceil(count($out)/2));  
    $new  = [];
    for($i=0; $i<=count($out[0]);$i++){
        $new[] = $out[0][$i];
        if(!empty($out[1][$i]))
            $new[]=$out[1][$i];
        
    }


Ответы (2 шт):

Автор решения: Виктор Карев
$out = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$c = ceil(count($out)/2);

$new  = [];
for($i = 0, $i1 = $c; $i < $c; $i++, $i1++){
    $new[] = $out[$i];
    if (isset($out[$i1])) {
        $new[] = $out[$i1];
    }
}

print_r($new);
→ Ссылка
Автор решения: teran

даешь однострок

$data = [1,2,3,4,5,6,7,8];
$result = array_merge(...array_map(null, ...array_chunk($data, ceil(count($data)/2))));

с нечетным количеством элементов, так хорошо, конечно, не получается, но все же

→ Ссылка