How to arrange even first and odd after in array with PHP

1 Answer

0 votes
function ArrangeEvenOdd(&$arr) {
    $left = 0;
    $right = count($arr) - 1;
     
    while ($left < $right) {
        if (($arr[$left] % 2) != 0) { // odd
            while (($arr[$right] % 2 == 1) && $right > $left) {
                    $right--;
            }
            $tmp = $arr[$left];
            $arr[$left++] = $arr[$right];
            $arr[$right--] = $tmp;
        }
        else { // even
            $left++;
        }
    }
}
         
$arr = array(3, 4, 2, 9, 4, 8, 5, 6);
         
ArrangeEvenOdd($arr);
 
foreach ($arr as $n) {
    echo $n . " ";
}
 
 
 
 
 
/*
run:
 
6 4 2 8 4 9 5 3 
 
*/

 



answered Aug 28, 2022 by avibootz
edited Aug 28, 2022 by avibootz

Related questions

1 answer 115 views
1 answer 108 views
1 answer 110 views
1 answer 140 views
1 answer 107 views
1 answer 112 views
1 answer 104 views
...