How to sort array into zig zag pattern (a < b > c < d > e < f > g) in PHP

1 Answer

0 votes
function SortArrayIntoZigZagPattern(&$arr) {
    $small = true;
    $size = count($arr);
    
    for ($i = 0; $i <= $size - 2; $i++) {
        if ($small) {
            if ($arr[$i] > $arr[$i + 1]) {
                $temp = $arr[$i];
                $arr[$i] = $arr[$i + 1];
                $arr[$i + 1] = $temp;
            }
        }
        else {
            if ($arr[$i] < $arr[$i + 1]) {
                $temp = $arr[$i];
                $arr[$i] = $arr[$i + 1];
                $arr[$i + 1] = $temp;
            }
        }
        $small = !$small;
    }
}
        
// a < b > c < d > e < f > g...
// 3 < 5 > 1 < 9 > 6 < 7 > 2 < 4
    
$arr = array(3, 5, 1, 7, 9, 6, 4, 2);

SortArrayIntoZigZagPattern($arr);
    
echo json_encode($arr);




/*
run:

[3,5,1,9,6,7,2,4]

*/

 



answered Nov 6, 2022 by avibootz
...