How to sort array odd numbers in descending order and even numbers in ascending order in PHP

1 Answer

0 votes
function make_odds_negative(&$arr) {
    for ($i = 0 ; $i < sizeof($arr); $i++) {
        if ($arr[$i] % 2 !== 0) {
            $arr[$i] *= -1; 
        }
    }
} 

function odd_even_sort(&$arr) { 
    make_odds_negative($arr);
    
    print_array($arr);
    
    sort($arr); 
    
    print_array($arr);
  
    make_odds_negative($arr);
} 
  
function print_array($arr) {
    for ($i = 0 ; $i < sizeof($arr); $i++) {
        echo $arr[$i] . " ";
    }
    echo "<br />";
}


$arr = array(3, 4, 6, 1, 2, 5); 

odd_even_sort($arr); 

print_array($arr);



  
/*
run:
       
-3 4 6 -1 2 -5
-5 -3 -1 2 4 6
5 3 1 2 4 6 
      
*/

 



answered May 5, 2019 by avibootz
...