Return to uasort_variation10.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 array with reference variables 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: * Testing uasort() with 'array_arg' containing different reference variables 12: */ 13: 14: // comparision function 15: /* Prototype : int cmp_function(mixed $value1, mixed $value2) 16: * Parameters : $value1 and $value2 - values to be compared 17: * Return value : 0 - if both values are same 18: * 1 - if value1 is greater than value2 19: * -1 - if value1 is less than value2 20: * Description : compares value1 and value2 21: */ 22: function cmp_function($value1, $value2) 23: { 24: if($value1 == $value2) { 25: return 0; 26: } 27: else if($value1 > $value2) { 28: return 1; 29: } 30: else { 31: return -1; 32: } 33: } 34: 35: echo "*** Testing uasort() : 'array_arg' with elements as reference ***\n"; 36: 37: // different variables which are used as elements of 'array_arg' 38: $value1 = -5; 39: $value2 = 100; 40: $value3 = 0; 41: $value4 = &$value1; 42: 43: // array_args an array containing elements with reference variables 44: $array_arg = array( 45: 0 => 10, 46: 1 => &$value4, 47: 2 => &$value2, 48: 3 => 200, 49: 4 => &$value3, 50: ); 51: 52: echo "-- Sorting 'array_arg' containing different references --\n"; 53: var_dump( uasort($array_arg, 'cmp_function') ); // expecting: bool(true) 54: var_dump($array_arg); 55: 56: echo "Done" 57: ?> 58: --EXPECTF-- 59: *** Testing uasort() : 'array_arg' with elements as reference *** 60: -- Sorting 'array_arg' containing different references -- 61: bool(true) 62: array(5) { 63: [1]=> 64: &int(-5) 65: [4]=> 66: &int(0) 67: [0]=> 68: int(10) 69: [2]=> 70: &int(100) 71: [3]=> 72: int(200) 73: } 74: Done