Annotation of embedaddon/php/ext/standard/tests/array/array_walk_variation6.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test array_walk() function : usage variations - 'input' argument as diff. associative arrays
! 3: --FILE--
! 4: <?php
! 5: /* Prototype : bool array_walk(array $input, string $funcname [, mixed $userdata])
! 6: * Description: Apply a user function to every member of an array
! 7: * Source code: ext/standard/array.c
! 8: */
! 9:
! 10: /*
! 11: * Passing 'input' argument as an associative array
! 12: * with Numeric & string keys
! 13: */
! 14:
! 15: echo "*** Testing array_walk() : 'input' as an associative array ***\n";
! 16:
! 17: // callback functions
! 18: /* Prototype : for_numeric( int $value, int $key, int $user_data)
! 19: * Parameters : $value - value from key/value pair of the array
! 20: * $key - key from key/value pair of the array
! 21: * $user_data - data to be added to 'value'
! 22: * Description : Function adds values with keys & user_data
! 23: */
! 24: function for_numeric($value, $key, $user_data)
! 25: {
! 26: // dump the input values to see if they are
! 27: // passed with correct type
! 28: var_dump($key);
! 29: var_dump($value);
! 30: var_dump($user_data);
! 31: echo "\n"; // new line to separate the output between each element
! 32: }
! 33:
! 34: /* Prototype : for_string( string $value, string $key)
! 35: * Parameters : $value - values in given input array
! 36: * $key - keys in given input array
! 37: * Description : Function appends key to the value
! 38: */
! 39: function for_string($value, $key)
! 40: {
! 41: // dump the input values to see if they are
! 42: // passed with correct type
! 43: var_dump($key);
! 44: var_dump($value);
! 45: echo "\n"; // new line to separate the output between each element
! 46: }
! 47:
! 48: /* Prototype : for_mixed( mixed $value, mixed $key)
! 49: * Parameters : $value - values in given input array
! 50: * $key - keys in given input array
! 51: * Description : Function displays each element of an array with keys
! 52: */
! 53: function for_mixed($value, $key)
! 54: {
! 55: // dump the input values to see if they are
! 56: // passed with correct type
! 57: var_dump($key);
! 58: var_dump($value);
! 59: echo "\n"; // new line to separate the output between each element
! 60: }
! 61:
! 62: // Numeric keys
! 63: $input = array( 1 => 25, 5 => 12, 0 => -80, -2 => 100, 5 => 30);
! 64: echo "-- Associative array with numeric keys --\n";
! 65: var_dump( array_walk($input, "for_numeric", 10));
! 66:
! 67: // String keys
! 68: $input = array( "a" => "Apple", 'b' => 'Bananna', "c" => "carrot", 'o' => "Orange");
! 69: echo "-- Associative array with string keys --\n";
! 70: var_dump( array_walk($input, "for_string"));
! 71:
! 72: // binary keys
! 73: $input = array( b"a" => "Apple", b"b" => "Banana");
! 74: echo "-- Associative array with binary keys --\n";
! 75: var_dump( array_walk($input, "for_string"));
! 76:
! 77: // Mixed keys - numeric/string
! 78: $input = array( 0 => 1, 1 => 2, "a" => "Apple", "b" => "Banana", 2 =>3);
! 79: echo "-- Associative array with numeric/string keys --\n";
! 80: var_dump( array_walk($input, "for_mixed"));
! 81:
! 82: echo "Done"
! 83: ?>
! 84: --EXPECTF--
! 85: *** Testing array_walk() : 'input' as an associative array ***
! 86: -- Associative array with numeric keys --
! 87: int(1)
! 88: int(25)
! 89: int(10)
! 90:
! 91: int(5)
! 92: int(30)
! 93: int(10)
! 94:
! 95: int(0)
! 96: int(-80)
! 97: int(10)
! 98:
! 99: int(-2)
! 100: int(100)
! 101: int(10)
! 102:
! 103: bool(true)
! 104: -- Associative array with string keys --
! 105: string(1) "a"
! 106: string(5) "Apple"
! 107:
! 108: string(1) "b"
! 109: string(7) "Bananna"
! 110:
! 111: string(1) "c"
! 112: string(6) "carrot"
! 113:
! 114: string(1) "o"
! 115: string(6) "Orange"
! 116:
! 117: bool(true)
! 118: -- Associative array with binary keys --
! 119: string(1) "a"
! 120: string(5) "Apple"
! 121:
! 122: string(1) "b"
! 123: string(6) "Banana"
! 124:
! 125: bool(true)
! 126: -- Associative array with numeric/string keys --
! 127: int(0)
! 128: int(1)
! 129:
! 130: int(1)
! 131: int(2)
! 132:
! 133: string(1) "a"
! 134: string(5) "Apple"
! 135:
! 136: string(1) "b"
! 137: string(6) "Banana"
! 138:
! 139: int(2)
! 140: int(3)
! 141:
! 142: bool(true)
! 143: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>