Return to uasort_variation4.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / array |
1.1 misho 1: --TEST-- 2: Test uasort() function : usage variations - sort different numeric values 3: --FILE-- 4: <?php 5: /* Prototype : bool uasort(array $array_arg, string $cmp_function) 6: * Description: Sort an array with a user-defined comparison function and maintain index association 7: * Source code: ext/standard/array.c 8: */ 9: 10: /* 11: * sorting different types of numeric arrays containing data of following type: 12: * integer, octal, hexadecimal & float 13: */ 14: 15: // comparision function 16: /* Prototype : int cmp_function(mixed $value1, mixed $value2) 17: * Parameters : $value1 and $value2 - values to be compared 18: * Return value : 0 - if both values are same 19: * 1 - if value1 is greater than value2 20: * -1 - if value1 is less than value2 21: * Description : compares value1 and value2 22: */ 23: function cmp_function($value1, $value2) 24: { 25: if($value1 == $value2) { 26: return 0; 27: } 28: else if($value1 > $value2) { 29: return 1; 30: } 31: else { 32: return -1; 33: } 34: } 35: 36: echo "*** Testing uasort() : different numeric arrays as 'array_arg' ***\n"; 37: 38: // Int array 39: $int_values = array(0 => 3, 1 => 2, 3 => 100, 4 => 150, 5 => 25, 6 => 350, 7 => 0, 8 => -3, 9 => -1200); 40: echo "-- Sorting Integer array --\n"; 41: var_dump( uasort($int_values, 'cmp_function') ); // expecting: bool(true) 42: var_dump($int_values); 43: 44: // Octal array 45: $octal_values = array(0 => 056, 1 => 023, 2 => 090, 3 => 015, 4 => -045, 5 => 01, 6 => -078); 46: echo "-- Sorting Octal array --\n"; 47: var_dump( uasort($octal_values, 'cmp_function') ); // expecting: bool(true) 48: var_dump($octal_values); 49: 50: // Hexadecimal array 51: $hex_values = array(0 => 0xAE, 1 => 0x2B, 2 => 0X10, 3 => -0xCF, 4 => 0X12, 5 => -0XF2); 52: echo "-- Sorting Hex array --\n"; 53: var_dump( uasort($hex_values, 'cmp_function') ); // expecting: bool(true) 54: var_dump($hex_values); 55: 56: // Float array 57: $float_values = array( 0 => 10.2, 1 => 2.4, 2 => -3.4, 3 => 0, 4 => 0.5, 5 => 7.3e3, 6 => -9.34E-2); 58: echo "-- Sorting Float array --\n"; 59: var_dump( uasort($float_values, 'cmp_function') ); // expecting: bool(true) 60: var_dump($float_values); 61: 62: // empty array 63: $empty_array = array(); 64: echo "-- Sorting empty array --\n"; 65: var_dump( uasort($empty_array, 'cmp_function') ); // expecting: bool(true) 66: var_dump($empty_array); 67: 68: echo "Done" 69: ?> 70: --EXPECTF-- 71: *** Testing uasort() : different numeric arrays as 'array_arg' *** 72: -- Sorting Integer array -- 73: bool(true) 74: array(9) { 75: [9]=> 76: int(-1200) 77: [8]=> 78: int(-3) 79: [7]=> 80: int(0) 81: [1]=> 82: int(2) 83: [0]=> 84: int(3) 85: [5]=> 86: int(25) 87: [3]=> 88: int(100) 89: [4]=> 90: int(150) 91: [6]=> 92: int(350) 93: } 94: -- Sorting Octal array -- 95: bool(true) 96: array(7) { 97: [4]=> 98: int(-37) 99: [6]=> 100: int(-7) 101: [2]=> 102: int(0) 103: [5]=> 104: int(1) 105: [3]=> 106: int(13) 107: [1]=> 108: int(19) 109: [0]=> 110: int(46) 111: } 112: -- Sorting Hex array -- 113: bool(true) 114: array(6) { 115: [5]=> 116: int(-242) 117: [3]=> 118: int(-207) 119: [2]=> 120: int(16) 121: [4]=> 122: int(18) 123: [1]=> 124: int(43) 125: [0]=> 126: int(174) 127: } 128: -- Sorting Float array -- 129: bool(true) 130: array(7) { 131: [2]=> 132: float(-3.4) 133: [6]=> 134: float(-0.0934) 135: [3]=> 136: int(0) 137: [4]=> 138: float(0.5) 139: [1]=> 140: float(2.4) 141: [0]=> 142: float(10.2) 143: [5]=> 144: float(7300) 145: } 146: -- Sorting empty array -- 147: bool(true) 148: array(0) { 149: } 150: Done