--TEST--
Test usort() function : usage variations - numeric data
--FILE--
<?php
/* Prototype  : bool usort(array $array_arg, string $cmp_function)
 * Description: Sort an array by values using a user-defined comparison function 
 * Source code: ext/standard/array.c
 */

/*
 * Pass arrays of numeric data to usort() to test how it is re-ordered
 */

echo "*** Testing usort() : usage variation ***\n";

function 
cmp_function($value1$value2)
{
  if(
$value1 == $value2) {
    return 
0;
  }
  else if(
$value1 $value2) {
    return 
1;
  }
  else {
    return -
1;
  }
}

// Int array
$int_values = array(=> 3,   => 2,   => 100
                    
=> 150=> 25,  => 350
                    
=> 0,   => -3,  => -1200);
                    
echo 
"\n-- Sorting Integer array --\n";
var_dumpusort($int_values'cmp_function') );
var_dump($int_values);

// Octal array
$octal_values = array(=> 056=> 023,  => 090
                      
=> 015=> -045=> 01,  => -078);

echo 
"\n-- Sorting Octal array --\n";
var_dumpusort($octal_values'cmp_function') );
var_dump($octal_values);

// Hexadecimal array
$hex_values = array(=> 0xAE,  => 0x2B=> 0X10
                    
=> -0xCF=> 0X12=> -0XF2);
                    
echo 
"\n-- Sorting Hex array --\n";
var_dumpusort($hex_values'cmp_function') );
var_dump($hex_values);

// Float array
$float_values = array( => 10.2=> 2.4=> -3.4
                       
=> 0,    => 0.5=> 7.3e3=> -9.34E-2);
                       
echo 
"\n-- Sorting Float array --\n";
var_dumpusort($float_values'cmp_function') );
var_dump($float_values);

// empty array
$empty_array = array();

echo 
"\n-- Sorting empty array --\n";
var_dumpusort($empty_array'cmp_function') );
var_dump($empty_array);
?>
===DONE===
--EXPECTF--
*** Testing usort() : usage variation ***

-- Sorting Integer array --
bool(true)
array(9) {
  [0]=>
  int(-1200)
  [1]=>
  int(-3)
  [2]=>
  int(0)
  [3]=>
  int(2)
  [4]=>
  int(3)
  [5]=>
  int(25)
  [6]=>
  int(100)
  [7]=>
  int(150)
  [8]=>
  int(350)
}

-- Sorting Octal array --
bool(true)
array(7) {
  [0]=>
  int(-37)
  [1]=>
  int(-7)
  [2]=>
  int(0)
  [3]=>
  int(1)
  [4]=>
  int(13)
  [5]=>
  int(19)
  [6]=>
  int(46)
}

-- Sorting Hex array --
bool(true)
array(6) {
  [0]=>
  int(-242)
  [1]=>
  int(-207)
  [2]=>
  int(16)
  [3]=>
  int(18)
  [4]=>
  int(43)
  [5]=>
  int(174)
}

-- Sorting Float array --
bool(true)
array(7) {
  [0]=>
  float(-3.4)
  [1]=>
  float(-0.0934)
  [2]=>
  int(0)
  [3]=>
  float(0.5)
  [4]=>
  float(2.4)
  [5]=>
  float(10.2)
  [6]=>
  float(7300)
}

-- Sorting empty array --
bool(true)
array(0) {
}
===DONE===