Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Prodentim Probiotics Specially Designed For The Health Of Your Teeth And Gums

Instant Grammar Checker - Correct all grammar errors and enhance your writing

Teach Your Child To Read

Powerful WordPress hosting for WordPress professionals

Disclosure: My content contains affiliate links.

31,166 questions

40,722 answers

573 users

How to sort an array of 0, 1 and 2 values with while loop and switch in PHP

1 Answer

0 votes
function swap(&$a, &$b) { 
    $tmp = $a; 
    $a = $b; 
    $b = $tmp; 
} 

function ssort(&$arr) { 
    $start = 0; 
    $end = sizeof($arr) - 1; 
    $mid = 0; 
  
    while ($mid <= $end) { 
        switch ($arr[$mid]) { 
            case 0: 
                swap($arr[$start++], $arr[$mid++]); 
                break; 
            case 1: 
                $mid++; 
                break; 
            case 2: 
                swap($arr[$mid], $arr[$end--]); 
                break; 
        } 
    } 
} 
  

$arr = array(2, 1, 0, 0, 1, 2, 2, 1, 1, 2);
  
ssort($arr); 

for ($i = 0; $i < sizeof($arr); $i++) {
       echo $arr[$i] . " ";     
}


  
/*
run:
       
0 0 1 1 1 1 2 2 2 2 
      
*/

 





answered May 1, 2019 by avibootz
...