How to move all negative elements to the end of array in PHP

2 Answers

0 votes
function move_negative_to_end(&$arr) { 
    $len = sizeof($arr); 
    
    $temp = array(0, $len, NULL); 
  
    $j = 0; 
    for ($i = 0; $i < $len ; $i++) 
        if ($arr[$i] >= 0 ) 
            $temp[$j++] = $arr[$i]; 
  
    if ($j == $len || $j == 0) 
        return; 
  
    for ($i = 0 ; $i < $len ; $i++) 
        if ($arr[$i] < 0) 
            $temp[$j++] = $arr[$i]; 
  
    for($i = 0; $i < $len; $i++) 
        $arr[$i] = $temp[$i]; 
} 
  

$arr = array(-1, 8, -21, -3, -2, 7, 15, -30, -40, 4, 6, 9); 
  
move_negative_to_end($arr); 
  
for ($i = 0; $i < sizeof($arr); $i++) 
    echo $arr[$i] . " "; 
    
  
  
    
/*
run:

8 7 15 4 6 9 -1 -21 -3 -2 -30 -40 

*/

 



answered Nov 4, 2021 by avibootz
0 votes
function move_negative_to_end(&$arr) { 
    $len = sizeof($arr); 

    $j = 0;
    for ($i = 0; $i < $len; $i++) {
        if ($arr[$i] >= 0) {
            $tmp = $arr[$i];
            $arr[$i] = $arr[$j];
            $arr[$j] = $tmp;
            $j++;
        }
    }
} 
  

$arr = array(-1, 8, -21, -3, -2, 7, 15, -30, -40, 4, 6, 9); 
  
move_negative_to_end($arr); 
  
for ($i = 0; $i < sizeof($arr); $i++) 
    echo $arr[$i] . " "; 
    
  
  
    
/*
run:

8 7 15 4 6 9 -21 -30 -40 -3 -2 -1 

*/

 



answered Nov 4, 2021 by avibootz

Related questions

1 answer 201 views
1 answer 142 views
2 answers 172 views
2 answers 148 views
2 answers 158 views
...