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

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,851 questions

51,772 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
...