Return to uasort_variation3.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 all posible keys 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' having different keys 12: */ 13: 14: echo "*** Testing uasort() : Sorting array with all possible keys ***\n"; 15: 16: //comparison function 17: /* Prototype : int cmp_function(mixed $value1, mixed $value2) 18: * Parameters : $value1 and $value2 - values to be compared 19: * Return value : 0 - if both values are same 20: * 1 - if value1 is greater than value2 21: * -1 - if value1 is less than value2 22: * Description : compares value1 and value2 23: */ 24: function cmp_function($value1, $value2) 25: { 26: if($value1 == $value2) { 27: return 0; 28: } 29: else if($value1 > $value2) { 30: return -1; 31: } 32: else { 33: return 1; 34: } 35: } 36: 37: // different heredoc strings 38: //empty heredoc string 39: $empty_heredoc = <<<EOT1 40: EOT1; 41: 42: // single line heredoc string 43: $simple_heredoc = <<<EOT2 44: simple 45: EOT2; 46: 47: // multiline heredoc string 48: $multiline_heredoc = <<<EOT3 49: multiline heredoc with 123 50: and speci@! ch@r..\ncheck\talso 51: EOT3; 52: 53: $array_arg = array( 54: // default key 55: 1, //expecting: default key 0, value will be replaced by 'FALSE' 56: 57: // numeric keys 58: 1 => 10, // expecting: value will be replaced by 'TRUE' 59: -2 => 9, 60: 8.9 => 8, 61: 012 => 7, 62: 0x34 => 6, 63: 64: // string keys 65: 'key' => 5, //single quoted key 66: "two" => 4, //double quoted key 67: '' => 3, 68: "" => 2, 69: " " => 0, // space as key 70: 71: // bool keys 72: true => 15, 73: false => 5, 74: TRUE => 100, 75: FALSE => 25, 76: 77: // null keys 78: null => 20, // expecting: value will be replaced by 'NULL' 79: NULL => 35, 80: 81: // binary key 82: "a".chr(0)."b" => 45, 83: b"binary" => 30, 84: 85: //heredoc keys 86: $empty_heredoc => 90, 87: $simple_heredoc => 75, 88: $multiline_heredoc => 200, 89: ); 90: 91: var_dump( uasort($array_arg, 'cmp_function') ); 92: echo "-- Sorted array after uasort() function call --\n"; 93: var_dump($array_arg); 94: 95: echo "Done" 96: ?> 97: --EXPECTF-- 98: *** Testing uasort() : Sorting array with all possible keys *** 99: bool(true) 100: -- Sorted array after uasort() function call -- 101: array(14) { 102: ["multiline heredoc with 123 103: and speci@! ch@r.. 104: check also"]=> 105: int(200) 106: [1]=> 107: int(100) 108: [""]=> 109: int(90) 110: ["simple"]=> 111: int(75) 112: ["a b"]=> 113: int(45) 114: ["binary"]=> 115: int(30) 116: [0]=> 117: int(25) 118: [-2]=> 119: int(9) 120: [8]=> 121: int(8) 122: [10]=> 123: int(7) 124: [52]=> 125: int(6) 126: ["key"]=> 127: int(5) 128: ["two"]=> 129: int(4) 130: [" "]=> 131: int(0) 132: } 133: Done