rsort


php128 apg

SORT an ARRAY arranging the elements from highest to lowest.





This function returns TRUE on success or FALSE on failure.



<?php

bool rsort 
arr &$array [, int $sort_flags SORT_REGULAR ] )
 

where,

&
$array The input ARRAY

$sort_flags To control de sorting behavior
                    
SEE the below TABLE )

?> 

&$array


The input ARRAY.



 $sort_flags 


May be used to modify the sorting behavior.

It can be one of the following values:

CONSTANT VALUE OBSERVATIONS DEFAULT
SORT_REGULAR 0 compare items normally
(don't change types).
SORT_REGULAR
SORT_NUMERIC 1 compare items numerically
SORT_STRING 2 compare items as strings
SORT_LOCALE_STRING 5 compare items as strings, based on the current locale.
It uses the locale, which can be changed using setlocale.
SORT_NATURAL 6 compare items as strings using "natural ordering" like natsort.
SORT_FLAG_CASE 8 can be combined (bitwise OR) with SORT_STRING or SORT_NATURAL to sort strings case-insensitively
ed48


  1 EXERCISE   

<?php 

$arr01s 
= ["x""Z""a""y""B""k"]; 

    echo 
'<pre>'
var_dump($arr01s); 
    echo 
'</pre>'

if(
rsort($arr01s) == true

    echo 
'<pre>'
var_dump($arr01s); 
    echo 
'</pre>'


?> 

  2 EXERCISE   

<?php

$arr02s 
= ["x""Z""a""y""B""k"57"9""11"];

    echo 
'<pre>';
var_dump($arr02s);
    echo 
'</pre>';

if(
rsort($arr02sSORT_REGULAR) == true)
{
    echo 
'<pre>';
var_dump($arr02s);
    echo 
'</pre>';
}

?> 

  3 EXERCISE   

<?php

$arr03s 
= ["R" => 'red'"G" => 'green'"B" => 'blue'
                
"H" => 'HUE'"S" => 'SATURATION'"K" => 'BLACK'];

    echo 
'<pre>';
var_dump($arr03s);
    echo 
'</pre>';

if(
rsort($arr03sSORT_STRING) == true)
{
    echo 
'<pre>';
var_dump($arr03s);
    echo 
'</pre>';
}

?> 

  4 EXERCISE   

<?php

$arr04s 
= array (=> 100=> 73'THREE' => 120
                          
'4' => 88'five' => '77'=> '120'
                          
'8' => 'EIGHT'=> 'nine');

    echo 
'<pre>';
var_dump($arr04s);
    echo 
'</pre>';

if(
rsort($arr04sSORT_NUMERIC) == true)
{
    echo 
'<pre>';
var_dump($arr04s);
    echo 
'</pre>';
}

?> 

  5 EXERCISE   

<?php

$arr05a 
= [=> 33.33=> 2.456=> M_PI];

var_dump($arr05a);

echo 
'<br>';

setlocale(LC_ALL"en_US""en-US");

if(
rsort($arr05aSORT_LOCALE_STRING) == true)
{
var_dump($arr05a);
}

echo 
'<br><br><br>';

$arr05b = [=> 33.33=> 2.456=> M_PI];

var_dump($arr05b);

echo 
'<br>';

setlocale(LC_ALL"pt_BR""pt-BR");

if(
rsort($arr05bSORT_LOCALE_STRING) == true)
{
var_dump($arr05b);
}

?> 

  6 EXERCISE   

<?php

/*
 * Testing rsort() by providing 
 * arrays with default keys and assoc arrays
 * to check the basic functionality 
 * with following flag values.
 *  flag value as default
 *  SORT_REGULAR - compare items normally
 *  SORT_NUMERIC - compare items numerically
 *  SORT_STRING - compare items as strings
*/

echo "Basic functionality:<br>";

$unsorted_strings = array(
    
"l" => "lemon""o" => "orange",
    
"O" => "Orange""O1" => "Orange1"
    
"o2" => "orange2""O3" => "Orange3"
    
"o20" => "orange20""b" => "banana",
);


$unsorted_numerics =  array( 1003355522 );

echo 
"<br>(string array)
<br>'flag' value is default:<br>"
;
$temp_array $unsorted_strings;
var_dumprsort($temp_array) );
echo 
'<br>';
var_dump$temp_array);

echo 
"<br><br>(numeric array)
<br>'flag' value is default:<br>"
;
$temp_array $unsorted_numerics;
var_dumprsort($temp_array) );
echo 
'<br>';
var_dump$temp_array);

echo 
"<br><br>(string array)
<br>'flag' = SORT_REGULAR:<br>"
;
$temp_array $unsorted_strings;
var_dumprsort($temp_arraySORT_REGULAR) );
echo 
'<br>';
var_dump$temp_array);

echo 
"<br><br>(numeric array)
<br>'flag' = SORT_REGULAR:<br>"
;
$temp_array $unsorted_numerics;
var_dumprsort($temp_arraySORT_REGULAR) );
echo 
'<br>';
var_dump$temp_array);

echo 
"<br><br>(string array)
<br>'flag' = SORT_STRING:<br>"
;
$temp_array $unsorted_strings;
var_dumprsort($temp_arraySORT_STRING) );
echo 
'<br>';
var_dump$temp_array);

echo 
"<br><br>(case insensitive)
<br>'flag' = SORT_STRING|SORT_FLAG_CASE:<br>"
;
$temp_array $unsorted_strings;
var_dumprsort($temp_array
                   
SORT_STRING|SORT_FLAG_CASE) );
echo 
'<br>';
var_dump$temp_array);

echo 
"<br><br>(string array, natural)
<br>'flag' = SORT_NATURAL:<br>"
;
$temp_array $unsorted_strings;
var_dumprsort($temp_arraySORT_NATURAL) );
echo 
'<br>';
var_dump$temp_array);

echo 
"<br><br>(natural, case insensitive)
<br>'flag' = SORT_NATURAL|SORT_FLAG_CASE:<br>"
;
$temp_array $unsorted_strings;
var_dumprsort($temp_array
               
SORT_NATURAL|SORT_FLAG_CASE) );
echo 
'<br>';
var_dump$temp_array);

echo 
"<br><br>(numeric array)
<br>'flag' = SORT_NUMERIC:<br>"
;
$temp_array $unsorted_numerics;
var_dumprsort($temp_arraySORT_NUMERIC) );
echo 
'<br>';
var_dump$temp_array);

?>

  7 EXERCISE   

<?php

/*
 * Testing rsort() by providing 
 * different octal array for $array argument
 * with following flag values
 * 1.flag value as default
 * 2.SORT_REGULAR - compare items normally
 * 3.SORT_NUMERIC - compare items numerically
*/

echo "Usage variations:<br><br>";

$unsorted_oct_array = [0123503210345
                                     
0660772077, -066, -03450];

echo 
"(octal value array)<br>'flag' value is default:<br>";
$temp_array $unsorted_oct_array;
var_dump(rsort($temp_array) );
echo 
'<br>';
var_dump($temp_array);

echo 
"<br><br>(octal value array)<br>'flag' value is SORT_REGULAR:<br>";
$temp_array $unsorted_oct_array;
var_dump(rsort($temp_arraySORT_REGULAR) ); 
echo 
'<br>';
var_dump($temp_array);

echo 
"<br><br>(octal value array)<br>'flag' value is SORT_NUMERIC:<br>";
$temp_array $unsorted_oct_array;
var_dump(rsort($temp_arraySORT_NUMERIC) );
echo 
'<br>';
var_dump($temp_array);

?>

  8 EXERCISE   

<?php

/*
 * Testing rsort() by providing 
 * mixed value array for $array argument 
 * with following flag values.
 * flag value as default
 * SORT_REGULAR - compare items normally
*/

echo "Usage variations:";

$mixed_values = array (
  array(),
  array(array(
33, -56), array(11), array(22, -55), array() ),
  -
4"4"4.00"b""5", -2, -2.0, -2.98989"-.9""True""",
  
NULL"ab""abcd"0.0, -0"abcd\x00abcd\x00abcd"''truefalse
);

echo 
"<br><br>(mixed value array)<br>'flag' value is default:<br>";
$temp_array $mixed_values;
var_dump(rsort($temp_array) );
echo 
'<br><br>';
var_dump($temp_array);

echo 
"<br><br>(mixed value array)<br>'flag' value is SORT_REGULAR:<br>";
$temp_array $mixed_values;
var_dump(rsort($temp_arraySORT_REGULAR) );
echo 
'<br><br>';
var_dump($temp_array);

?>

  9 EXERCISE   

<?php

/*
 * Testing rsort() by providing 
 * different integer/float value arrays 
 * for $array argument
 * with following flag values
 * 1. flag  value as default
 * 2. SORT_REGULAR - compare items normally
 * 3. SORT_NUMERIC - compare items numerically
 * 4. SORT_STRING - compare items as strings
*/

$various_arrays = array (

  array(
11, -1121, -2131, -31041, -41),


  array(
10.5, -10.510.5e210.6E-2.5.01, -.1),


  array(
.0001.0021, -.01, -10
                      
.092, -.910.6E-2, -10.6E-233),


  array(
21474836472147483648
          -
2147483647, -2147483648, -00, -2147483649)
);


$flag_value = array("SORT_REGULAR" => SORT_REGULAR
                               
"SORT_NUMERIC" => SORT_NUMERIC);

$count 1;
echo 
"Various integer/float arrays:";


foreach (
$various_arrays as $array) {
  echo 
"<br><br>Iteration: $count<br>";

  echo 
"<br>With Default sort flag<br>";
  
$temp_array $array;
  
var_dump(rsort($temp_array) );
  echo 
'<br>';
  
var_dump($temp_array);


  foreach(
$flag_value as $key => $flag){
    echo 
"<br><br>Sort flag = $key<br>";
    
$temp_array $array;
    
var_dump(rsort($temp_array$flag) );
    echo 
'<br>';
    
var_dump($temp_array);
  }
  
$count++;
}

?>

  10 EXERCISE   

<?php

/*
 * Testing rsort() by providing reference
 * variable array with following flag values
 *  flag value as default
 *  SORT_REGULAR - compare items normally
 *  SORT_NUMERIC - compare items numerically
*/

$value1 100;
$value2 33;
$value3 555;

$unsorted_numerics =  array( &$value1 , &$value2, &$value3);

echo 
"<br>(Reference variable array)<br>'flag' value is default:<br>";
$temp_array $unsorted_numerics;
var_dumprsort($temp_array) );
echo 
'<br>';
var_dump$temp_array);

echo 
"<br><br>(Reference variable array)<br>'flag' = SORT_REGULAR:<br>";
$temp_array = &$unsorted_numerics;
var_dumprsort($temp_arraySORT_REGULAR) );
echo 
'<br>';
var_dump$temp_array);

echo 
"<br><br>(Reference variable array)<br>'flag' = SORT_NUMERIC:<br>";
$temp_array = &$unsorted_numerics;
var_dumprsort($temp_arraySORT_NUMERIC) );
echo 
'<br>';
var_dump$temp_array);

?>

  11 EXERCISE   

<?php

/*
 * Testing rsort() by providing 
 * different string arrays for $array argument 
 * with following flag values
 *  flag  value as default
 *  SORT_REGULAR - compare items normally
 *  SORT_STRING  - compare items as strings
*/


$various_arrays = array (

  array(
nullNULL"\a""\cx""\e""\f"
                             
"\n""\r""\t""\xhh""\ddd""\v"),


  array(
"lemoN""Orange""banana""apple"
               
"Test""TTTT""ttt""ww""x"
                  
"X""oraNGe""BANANA")
);

$flags = array("SORT_REGULAR" => SORT_REGULAR
                       
"SORT_STRING" => SORT_STRING);

$count 1;
echo 
"Various string arrays:";

foreach (
$various_arrays as $array) {
  echo 
"<br><br>Iteration: $count<br>";

  echo 
"<br>With Default sort flag:<br>";
  
$temp_array $array;
  
var_dump(rsort($temp_array) );
  echo 
'<br>';
  
var_dump($temp_array);


  foreach(
$flags as $key => $flag){
    echo 
"<br><br>Sort flag = $key<br>";
    
$temp_array $array;
    
var_dump(rsort($temp_array$flag) );
    echo 
'<br>';
    
var_dump($temp_array);
  }
  
$count++;
}

?>

  12 EXERCISE   

<?php

/*
 * Testing rsort() by providing different
 * hexa-decimal array for $array argument 
 * with following flag values
 * flag  value as default
 * SORT_REGULAR - compare items normally
 * SORT_NUMERIC - compare items numerically
*/


$unsorted_hex_array = [0x1AB0xFFF0xF0xFF
                                     
0x2AA0xBB0x1ab
                                     
0xff, -0xFF0, -0x2aa];

echo 
"(hexadecimal value array)
                <br>'flag' value is default:<br>"
;
$temp_array $unsorted_hex_array;
var_dump(rsort($temp_array) );
echo 
'<br>';
var_dump($temp_array);

echo 
"<br><br>(hexadecimal value array)
                 <br>'flag' value is SORT_REGULAR:<br>"
;
$temp_array $unsorted_hex_array;
var_dump(rsort($temp_arraySORT_REGULAR) );
echo 
'<br>';
var_dump($temp_array);

echo 
"<br><br>(hexadecimal value array)
                 <br>'flag' value is SORT_NUMERIC:<br>"
;
$temp_array $unsorted_hex_array;
var_dump(rsort($temp_arraySORT_NUMERIC) );
echo 
'<br>';
var_dump($temp_array);

?>

  13 EXERCISE   

<?php

/*
 * Testing rsort() by providing bool value array
 * for $array argument with following flag values.
 * flag  value as default
 * SORT_REGULAR - compare items normally
*/


$bool_values = [truefalseTRUEFALSE];

echo 
"(bool value array)
                    <br>'flag' value is default:<br>"
;
$temp_array $bool_values;
var_dump(rsort($temp_array) );
echo 
'<br>';
var_dump($temp_array);

echo 
"<br><br>(bool value array)
                    <br>'flag' value is SORT_REGULAR:<br>"
;
$temp_array $bool_values;
var_dump(rsort($temp_arraySORT_REGULAR) );
echo 
'<br>';
var_dump($temp_array);

echo 
"<br><br>(bool value array)
                     <br>'flag' value is SORT_NUMERIC:<br>"
;
$temp_array $bool_values;
var_dump(rsort($temp_arraySORT_NUMERIC) );
echo 
'<br>';
var_dump($temp_array);

echo 
"<br><br>(bool value array)
                      <br>'flag' value is SORT_STRING:<br>"
;
$temp_array $bool_values;
var_dump(rsort($temp_arraySORT_STRING) );
echo 
'<br>';
var_dump($temp_array);

?>

  14 EXERCISE   

<?php

/*
 * Testing rsort() by providing arrays contains
 * sub arrays for $array argument 
 * with flowing flag values
 * flag value as default
 * SORT_REGULAR - compare items normally
*/

$various_arrays = array (

  array(),

  array( array() ),

  array(
4411, array(6461) ),

  array(array(
33, -56), array(11), array(22, -55), array() )
);

$count 1;

foreach (
$various_arrays as $array) {

  echo 
"<br><br>Iteration: $count<br>";

  echo 
"<br>With Default sort flag:<br>";
  
$temp_array $array;
  
var_dump(rsort($temp_array) );
  echo 
'<br>';
  
var_dump($temp_array);

  echo 
"<br><br>Sort flag = SORT_REGULAR<br>";
  
$temp_array $array;
  
var_dump(rsort($temp_arraySORT_REGULAR) );
   echo 
'<br>';
  
var_dump($temp_array);
  
$count++;
}

?>

  15 EXERCISE   

<?php

/*
 * Testing rsort() by providing arrays  
 * with key values for $array argument
 * with following flag values.
 * 1.flag value as default
 * 2.SORT_REGULAR - compare items normally
 * To test the new keys for the 
 * elements in the sorted array.
 */

$various_arrays = array(
  array(
=> 55=> 66=> 22=> 33=> 11),
  array (
"fruits"  => array("a" => "orange"
                                       
"b" => "banana"
                                       
"c" => "apple"),
         
"numbers" => array(123456),
         
"holes"   => array("first"=> "second""third")
        ),
  array(
11=> 1,  => 119=> 13),
  array(
'bar' => 'baz'"foo" => 1),
  array(
'a' => 1,'b' => array('e' => 2,
                       
'f' => 3),'c' => array('g' => 4),'d' => 5),
);

$count 1;
echo 
"Various arrays with key values:";

foreach (
$various_arrays as $array) {
  echo 
"<br><br>Iteration: $count<br>";

  echo 
"<br>With Default sort flag<br>";
  
$temp_array $array;
  
var_dump(rsort($temp_array) );
  echo 
'<br>';
  
var_dump($temp_array);

  echo 
"<br><br>Sort flag = SORT_REGULAR<br>";
  
$temp_array $array;
  
var_dump(rsort($temp_arraySORT_REGULAR) );
  echo 
'<br>';
  
var_dump($temp_array);
  
$count++;
}

?>