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

1.1       misho       1: --TEST--
                      2: Test array_filter() function : usage variations - Different types of array for 'input' argument
                      3: --FILE--
                      4: <?php
                      5: /* Prototype  : array array_filter(array $input [, callback $callback])
                      6:  * Description: Filters elements from the array via the callback. 
                      7:  * Source code: ext/standard/array.c
                      8: */
                      9: 
                     10: /*
                     11: * Passing different types of array as 'input' argument.
                     12: */
                     13: 
                     14: // callback function returning always false
                     15: function always_false($input)
                     16: {
                     17:   return false;
                     18: }
                     19: 
                     20: // callback function returning always true
                     21: function always_true($input)
                     22: {
                     23:   return true;
                     24: }
                     25: 
                     26: echo "*** Testing array_filter() : usage variations - different types of array for 'input' argument***\n";
                     27: 
                     28: // different types of 'input' array
                     29: $input_values = array(
                     30:   array(0, 1, 2, -1, 034, 0X4A),  // integer values
                     31:   array(0.0, 1.2, 1.2e3, 1.2e-3),  // float values
                     32:   array('value1', "value2", '', " ", ""),  // string values
                     33:   array(true, false, TRUE, FALSE),  // bool values
                     34:   array(null, NULL),  // null values
                     35:   array(1 => 'one', 'zero' => 0, -2 => "value"), //associative array
                     36:   array("one" => 1, null => 'null', 5.2 => "float", true => 1, "" => 'empty'),  // associative array with different keys
                     37:   array(1 => 'one', 2, "key" => 'value')  // combinition of associative and non-associative array
                     38: 
                     39: );
                     40: 
                     41: // loop through each element of 'input' with default callback
                     42: for($count = 0; $count < count($input_values); $count++)
                     43: {
                     44:   echo "-- Iteration ".($count + 1). " --\n";
                     45:   var_dump( array_filter($input_values[$count]) );
                     46:   var_dump( array_filter($input_values[$count], 'always_true') );
                     47:   var_dump( array_filter($input_values[$count], 'always_false') );
                     48: }
                     49: 
                     50: echo "Done"
                     51: ?>
                     52: --EXPECTF--
                     53: *** Testing array_filter() : usage variations - different types of array for 'input' argument***
                     54: -- Iteration 1 --
                     55: array(5) {
                     56:   [1]=>
                     57:   int(1)
                     58:   [2]=>
                     59:   int(2)
                     60:   [3]=>
                     61:   int(-1)
                     62:   [4]=>
                     63:   int(28)
                     64:   [5]=>
                     65:   int(74)
                     66: }
                     67: array(6) {
                     68:   [0]=>
                     69:   int(0)
                     70:   [1]=>
                     71:   int(1)
                     72:   [2]=>
                     73:   int(2)
                     74:   [3]=>
                     75:   int(-1)
                     76:   [4]=>
                     77:   int(28)
                     78:   [5]=>
                     79:   int(74)
                     80: }
                     81: array(0) {
                     82: }
                     83: -- Iteration 2 --
                     84: array(3) {
                     85:   [1]=>
                     86:   float(1.2)
                     87:   [2]=>
                     88:   float(1200)
                     89:   [3]=>
                     90:   float(0.0012)
                     91: }
                     92: array(4) {
                     93:   [0]=>
                     94:   float(0)
                     95:   [1]=>
                     96:   float(1.2)
                     97:   [2]=>
                     98:   float(1200)
                     99:   [3]=>
                    100:   float(0.0012)
                    101: }
                    102: array(0) {
                    103: }
                    104: -- Iteration 3 --
                    105: array(3) {
                    106:   [0]=>
                    107:   string(6) "value1"
                    108:   [1]=>
                    109:   string(6) "value2"
                    110:   [3]=>
                    111:   string(1) " "
                    112: }
                    113: array(5) {
                    114:   [0]=>
                    115:   string(6) "value1"
                    116:   [1]=>
                    117:   string(6) "value2"
                    118:   [2]=>
                    119:   string(0) ""
                    120:   [3]=>
                    121:   string(1) " "
                    122:   [4]=>
                    123:   string(0) ""
                    124: }
                    125: array(0) {
                    126: }
                    127: -- Iteration 4 --
                    128: array(2) {
                    129:   [0]=>
                    130:   bool(true)
                    131:   [2]=>
                    132:   bool(true)
                    133: }
                    134: array(4) {
                    135:   [0]=>
                    136:   bool(true)
                    137:   [1]=>
                    138:   bool(false)
                    139:   [2]=>
                    140:   bool(true)
                    141:   [3]=>
                    142:   bool(false)
                    143: }
                    144: array(0) {
                    145: }
                    146: -- Iteration 5 --
                    147: array(0) {
                    148: }
                    149: array(2) {
                    150:   [0]=>
                    151:   NULL
                    152:   [1]=>
                    153:   NULL
                    154: }
                    155: array(0) {
                    156: }
                    157: -- Iteration 6 --
                    158: array(2) {
                    159:   [1]=>
                    160:   string(3) "one"
                    161:   [-2]=>
                    162:   string(5) "value"
                    163: }
                    164: array(3) {
                    165:   [1]=>
                    166:   string(3) "one"
                    167:   ["zero"]=>
                    168:   int(0)
                    169:   [-2]=>
                    170:   string(5) "value"
                    171: }
                    172: array(0) {
                    173: }
                    174: -- Iteration 7 --
                    175: array(4) {
                    176:   ["one"]=>
                    177:   int(1)
                    178:   [""]=>
                    179:   string(5) "empty"
                    180:   [5]=>
                    181:   string(5) "float"
                    182:   [1]=>
                    183:   int(1)
                    184: }
                    185: array(4) {
                    186:   ["one"]=>
                    187:   int(1)
                    188:   [""]=>
                    189:   string(5) "empty"
                    190:   [5]=>
                    191:   string(5) "float"
                    192:   [1]=>
                    193:   int(1)
                    194: }
                    195: array(0) {
                    196: }
                    197: -- Iteration 8 --
                    198: array(3) {
                    199:   [1]=>
                    200:   string(3) "one"
                    201:   [2]=>
                    202:   int(2)
                    203:   ["key"]=>
                    204:   string(5) "value"
                    205: }
                    206: array(3) {
                    207:   [1]=>
                    208:   string(3) "one"
                    209:   [2]=>
                    210:   int(2)
                    211:   ["key"]=>
                    212:   string(5) "value"
                    213: }
                    214: array(0) {
                    215: }
                    216: Done

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