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

1.1       misho       1: --TEST--
                      2: Test array_reduce() function
                      3: --INI--
                      4: precision=14
                      5: --FILE--
                      6: <?php
                      7: /* Prototype: array array_reduce(array $array, mixed $callback, mixed $initial);
                      8:    Description: Iteratively reduce the array to a single value via the callback
                      9: */
                     10: 
                     11: $array = array('foo', 'foo', 'bar', 'qux', 'qux', 'quux');
                     12: 
                     13: echo "\n*** Testing array_reduce() to integer ***\n";
                     14: function reduce_int($w, $v) { return $w + strlen($v); }
                     15: $initial = 42;
                     16: var_dump(array_reduce($array, 'reduce_int', $initial), $initial);
                     17: 
                     18: echo "\n*** Testing array_reduce() to float ***\n";
                     19: function reduce_float($w, $v) { return $w + strlen($v) / 10; }
                     20: $initial = 4.2;
                     21: var_dump(array_reduce($array, 'reduce_float', $initial), $initial);
                     22: 
                     23: echo "\n*** Testing array_reduce() to string ***\n";
                     24: function reduce_string($w, $v) { return $w . $v; }
                     25: $initial = 'quux';
                     26: var_dump(array_reduce($array, 'reduce_string', $initial), $initial);
                     27: 
                     28: echo "\n*** Testing array_reduce() to array ***\n";
                     29: function reduce_array($w, $v) { $w[$v]++; return $w; }
                     30: $initial = array('foo' => 42, 'bar' => 17, 'qux' => -2, 'quux' => 0);
                     31: var_dump(array_reduce($array, 'reduce_array', $initial), $initial);
                     32: 
                     33: echo "\n*** Testing array_reduce() to null ***\n";
                     34: function reduce_null($w, $v) { return $w . $v; }
                     35: $initial = null;
                     36: var_dump(array_reduce($array, 'reduce_null', $initial), $initial);
                     37: 
                     38: echo "\nDone";
                     39: ?> 
                     40: --EXPECTF--
                     41: *** Testing array_reduce() to integer ***
                     42: int(61)
                     43: int(42)
                     44: 
                     45: *** Testing array_reduce() to float ***
                     46: float(6.1)
                     47: float(4.2)
                     48: 
                     49: *** Testing array_reduce() to string ***
                     50: string(23) "quuxfoofoobarquxquxquux"
                     51: string(4) "quux"
                     52: 
                     53: *** Testing array_reduce() to array ***
                     54: array(4) {
                     55:   ["foo"]=>
                     56:   int(44)
                     57:   ["bar"]=>
                     58:   int(18)
                     59:   ["qux"]=>
                     60:   int(0)
                     61:   ["quux"]=>
                     62:   int(1)
                     63: }
                     64: array(4) {
                     65:   ["foo"]=>
                     66:   int(42)
                     67:   ["bar"]=>
                     68:   int(17)
                     69:   ["qux"]=>
                     70:   int(-2)
                     71:   ["quux"]=>
                     72:   int(0)
                     73: }
                     74: 
                     75: *** Testing array_reduce() to null ***
                     76: string(19) "foofoobarquxquxquux"
                     77: NULL
                     78: 
                     79: Done

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