Annotation of embedaddon/php/ext/standard/tests/array/arsort_variation8.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Test arsort() function : usage variations - sort array with diff. sub arrays, 'sort_flags' as default/SORT_REGULAR 
                      3: --FILE--
                      4: <?php
                      5: /* Prototype  : bool arsort ( array &$array [, int $sort_flags] )
                      6:  * Description: Sort an array and maintain index association. 
                      7:                 Elements will be arranged from highest to lowest when this function has completed.
                      8:  * Source code: ext/standard/array.c
                      9: */
                     10: 
                     11: /*
                     12:  * testing arsort() by providing arrays contains sub arrays for $array argument with flowing flag values
                     13:  * flag value as default
                     14:  * SORT_REGULAR - compare items normally
                     15:  * Note: arrays are sorted based on total count of elements inside it, when all the elements are arrays
                     16: */
                     17: 
                     18: echo "*** Testing arsort() : usage variations ***\n";
                     19: 
                     20: // array of arrays
                     21: $various_arrays = array (
                     22:   // null array
                     23:   "array[0]" => array(),
                     24: 
                     25:   // array contains null sub array
                     26:   "array[1]" => array( "sub_array[1][0]" => array() ),
                     27: 
                     28:   // array of arrays along with some values
                     29:   "array[2]" => array("data[2,0]" => 44, "data[2,1]" => 11, "sub_array[2][0] " => array(64,61) ),
                     30: 
                     31:   // array contains sub arrays
                     32:   "array[3]" => array ( "sub_array[3][0]" => array(33,-5,6), "sub_array[3][1]" => array(11), 
                     33:                         "sub_array[3][2]" => array(22,-55), "sub_array[3][3]" => array() )
                     34: );
                     35: 
                     36: 
                     37: $count = 1;
                     38: echo "\n-- Testing arsort() by supplying various arrays containing sub arrays --\n";
                     39: 
                     40: // loop through to test arsort() with different arrays
                     41: foreach ($various_arrays as $array) {
                     42:  
                     43:   echo "\n-- Iteration $count --\n"; 
                     44:   // testing arsort() function by supplying different arrays, flag value is default
                     45:   echo "- With default sort_flag -\n";
                     46:   $temp_array = $array;
                     47:   var_dump(arsort($temp_array) );
                     48:   var_dump($temp_array);
                     49: 
                     50:   // testing arsort() function by supplying different arrays, flag value = SORT_REGULAR
                     51:   echo "- Sort_flag = SORT_REGULAR -\n";
                     52:   $temp_array = $array;
                     53:   var_dump(arsort($temp_array, SORT_REGULAR) );
                     54:   var_dump($temp_array);
                     55:   $count++;
                     56: }
                     57: 
                     58: echo "Done\n";
                     59: ?>
                     60: --EXPECTF--
                     61: *** Testing arsort() : usage variations ***
                     62: 
                     63: -- Testing arsort() by supplying various arrays containing sub arrays --
                     64: 
                     65: -- Iteration 1 --
                     66: - With default sort_flag -
                     67: bool(true)
                     68: array(0) {
                     69: }
                     70: - Sort_flag = SORT_REGULAR -
                     71: bool(true)
                     72: array(0) {
                     73: }
                     74: 
                     75: -- Iteration 2 --
                     76: - With default sort_flag -
                     77: bool(true)
                     78: array(1) {
                     79:   ["sub_array[1][0]"]=>
                     80:   array(0) {
                     81:   }
                     82: }
                     83: - Sort_flag = SORT_REGULAR -
                     84: bool(true)
                     85: array(1) {
                     86:   ["sub_array[1][0]"]=>
                     87:   array(0) {
                     88:   }
                     89: }
                     90: 
                     91: -- Iteration 3 --
                     92: - With default sort_flag -
                     93: bool(true)
                     94: array(3) {
                     95:   ["sub_array[2][0] "]=>
                     96:   array(2) {
                     97:     [0]=>
                     98:     int(64)
                     99:     [1]=>
                    100:     int(61)
                    101:   }
                    102:   ["data[2,0]"]=>
                    103:   int(44)
                    104:   ["data[2,1]"]=>
                    105:   int(11)
                    106: }
                    107: - Sort_flag = SORT_REGULAR -
                    108: bool(true)
                    109: array(3) {
                    110:   ["sub_array[2][0] "]=>
                    111:   array(2) {
                    112:     [0]=>
                    113:     int(64)
                    114:     [1]=>
                    115:     int(61)
                    116:   }
                    117:   ["data[2,0]"]=>
                    118:   int(44)
                    119:   ["data[2,1]"]=>
                    120:   int(11)
                    121: }
                    122: 
                    123: -- Iteration 4 --
                    124: - With default sort_flag -
                    125: bool(true)
                    126: array(4) {
                    127:   ["sub_array[3][0]"]=>
                    128:   array(3) {
                    129:     [0]=>
                    130:     int(33)
                    131:     [1]=>
                    132:     int(-5)
                    133:     [2]=>
                    134:     int(6)
                    135:   }
                    136:   ["sub_array[3][2]"]=>
                    137:   array(2) {
                    138:     [0]=>
                    139:     int(22)
                    140:     [1]=>
                    141:     int(-55)
                    142:   }
                    143:   ["sub_array[3][1]"]=>
                    144:   array(1) {
                    145:     [0]=>
                    146:     int(11)
                    147:   }
                    148:   ["sub_array[3][3]"]=>
                    149:   array(0) {
                    150:   }
                    151: }
                    152: - Sort_flag = SORT_REGULAR -
                    153: bool(true)
                    154: array(4) {
                    155:   ["sub_array[3][0]"]=>
                    156:   array(3) {
                    157:     [0]=>
                    158:     int(33)
                    159:     [1]=>
                    160:     int(-5)
                    161:     [2]=>
                    162:     int(6)
                    163:   }
                    164:   ["sub_array[3][2]"]=>
                    165:   array(2) {
                    166:     [0]=>
                    167:     int(22)
                    168:     [1]=>
                    169:     int(-55)
                    170:   }
                    171:   ["sub_array[3][1]"]=>
                    172:   array(1) {
                    173:     [0]=>
                    174:     int(11)
                    175:   }
                    176:   ["sub_array[3][3]"]=>
                    177:   array(0) {
                    178:   }
                    179: }
                    180: Done

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>