Return to arsort_variation5.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / array |
1.1 misho 1: --TEST-- 2: Test arsort() function : usage variations - sort strings 3: --SKIPIF-- 4: <?php 5: if (substr(PHP_OS, 0, 3) == 'WIN') { 6: die("skip Output tested contains chars that are not shown the same on windows concole (ESC and co)"); 7: } 8: --FILE-- 9: <?php 10: /* Prototype : bool arsort ( array &$array [, int $asort_flags] ) 11: * Description: Sort an array and maintain index association 12: Elements will be arranged from highest to lowest when this function has completed. 13: * Source code: ext/standard/array.c 14: */ 15: 16: /* 17: * testing arsort() by providing different string arrays for $array argument with following flag values 18: * flag value as defualt 19: * SORT_REGULAR - compare items normally 20: * SORT_STRING - compare items as strings 21: */ 22: 23: echo "*** Testing arsort() : usage variations ***\n"; 24: 25: $various_arrays = array ( 26: // group of escape sequences 27: array ("null"=> null, "NULL" => NULL, "\a" => "\a", "\cx" => "\cx", "\e" => "\e", 28: "\f" => "\f", "\n" =>"\n", "\r" => "\r", "\t" => "\t", "\xhh" => "\xhh", 29: "\ddd" => "\ddd", "\v" => "\v" 30: ), 31: 32: // array contains combination of capital/small letters 33: array ('l' => "lemoN", 'O' => "Orange", 'b' => "banana", 'a' => "apple", 'Te' => "Test", 34: 'T' => "TTTT", 't' => "ttt", 'w' => "ww", 'x' => "x", 'X' => "X", 'o' => "oraNGe", 35: 'B' => "BANANA" 36: ) 37: ); 38: 39: $flags = array("SORT_REGULAR" => SORT_REGULAR, "SORT_STRING" => SORT_STRING); 40: 41: $count = 1; 42: echo "\n-- Testing arsort() by supplying various string arrays --\n"; 43: 44: // loop through to test arsort() with different arrays 45: foreach ($various_arrays as $array) { 46: echo "\n-- Iteration $count --\n"; 47: 48: echo "- With default sort_flag -\n"; 49: $temp_array = $array; 50: var_dump(arsort($temp_array) ); // expecting : bool(true) 51: var_dump($temp_array); 52: 53: // loop through $flags array and setting all possible flag values 54: foreach($flags as $key => $flag){ 55: echo "- Sort_flag = $key -\n"; 56: $temp_array = $array; 57: var_dump(arsort($temp_array, $flag) ); // expecting : bool(true) 58: var_dump($temp_array); 59: } 60: $count++; 61: } 62: 63: echo "Done\n"; 64: ?> 65: --EXPECTF-- 66: *** Testing arsort() : usage variations *** 67: 68: -- Testing arsort() by supplying various string arrays -- 69: 70: -- Iteration 1 -- 71: - With default sort_flag - 72: bool(true) 73: array(12) { 74: ["\xhh"]=> 75: string(4) "\xhh" 76: ["\ddd"]=> 77: string(4) "\ddd" 78: ["\cx"]=> 79: string(3) "\cx" 80: ["\a"]=> 81: string(2) "\a" 1.1.1.2 ! misho 82: [""]=> ! 83: string(1) "" ! 84: [" "]=> ! 85: string(1) " " 1.1 misho 86: [""]=> 87: string(1) "" 88: [""]=> 89: string(1) "" 90: [" 91: "]=> 92: string(1) " 93: " 94: [" "]=> 95: string(1) " " 96: ["null"]=> 97: NULL 98: ["NULL"]=> 99: NULL 100: } 101: - Sort_flag = SORT_REGULAR - 102: bool(true) 103: array(12) { 104: ["\xhh"]=> 105: string(4) "\xhh" 106: ["\ddd"]=> 107: string(4) "\ddd" 108: ["\cx"]=> 109: string(3) "\cx" 110: ["\a"]=> 111: string(2) "\a" 1.1.1.2 ! misho 112: [""]=> ! 113: string(1) "" ! 114: [" "]=> ! 115: string(1) " " 1.1 misho 116: [""]=> 117: string(1) "" 118: [""]=> 119: string(1) "" 120: [" 121: "]=> 122: string(1) " 123: " 124: [" "]=> 125: string(1) " " 126: ["null"]=> 127: NULL 128: ["NULL"]=> 129: NULL 130: } 131: - Sort_flag = SORT_STRING - 132: bool(true) 133: array(12) { 134: ["\xhh"]=> 135: string(4) "\xhh" 136: ["\ddd"]=> 137: string(4) "\ddd" 138: ["\cx"]=> 139: string(3) "\cx" 140: ["\a"]=> 141: string(2) "\a" 1.1.1.2 ! misho 142: [""]=> ! 143: string(1) "" ! 144: [" "]=> ! 145: string(1) " " 1.1 misho 146: [""]=> 147: string(1) "" 148: [""]=> 149: string(1) "" 150: [" 151: "]=> 152: string(1) " 153: " 154: [" "]=> 155: string(1) " " 156: ["null"]=> 157: NULL 158: ["NULL"]=> 159: NULL 160: } 161: 162: -- Iteration 2 -- 163: - With default sort_flag - 164: bool(true) 165: array(12) { 166: ["x"]=> 167: string(1) "x" 168: ["w"]=> 169: string(2) "ww" 170: ["t"]=> 171: string(3) "ttt" 172: ["o"]=> 173: string(6) "oraNGe" 174: ["l"]=> 175: string(5) "lemoN" 176: ["b"]=> 177: string(6) "banana" 178: ["a"]=> 179: string(5) "apple" 180: ["X"]=> 181: string(1) "X" 182: ["Te"]=> 183: string(4) "Test" 184: ["T"]=> 185: string(4) "TTTT" 186: ["O"]=> 187: string(6) "Orange" 188: ["B"]=> 189: string(6) "BANANA" 190: } 191: - Sort_flag = SORT_REGULAR - 192: bool(true) 193: array(12) { 194: ["x"]=> 195: string(1) "x" 196: ["w"]=> 197: string(2) "ww" 198: ["t"]=> 199: string(3) "ttt" 200: ["o"]=> 201: string(6) "oraNGe" 202: ["l"]=> 203: string(5) "lemoN" 204: ["b"]=> 205: string(6) "banana" 206: ["a"]=> 207: string(5) "apple" 208: ["X"]=> 209: string(1) "X" 210: ["Te"]=> 211: string(4) "Test" 212: ["T"]=> 213: string(4) "TTTT" 214: ["O"]=> 215: string(6) "Orange" 216: ["B"]=> 217: string(6) "BANANA" 218: } 219: - Sort_flag = SORT_STRING - 220: bool(true) 221: array(12) { 222: ["x"]=> 223: string(1) "x" 224: ["w"]=> 225: string(2) "ww" 226: ["t"]=> 227: string(3) "ttt" 228: ["o"]=> 229: string(6) "oraNGe" 230: ["l"]=> 231: string(5) "lemoN" 232: ["b"]=> 233: string(6) "banana" 234: ["a"]=> 235: string(5) "apple" 236: ["X"]=> 237: string(1) "X" 238: ["Te"]=> 239: string(4) "Test" 240: ["T"]=> 241: string(4) "TTTT" 242: ["O"]=> 243: string(6) "Orange" 244: ["B"]=> 245: string(6) "BANANA" 246: } 1.1.1.2 ! misho 247: Done