Return to array_merge_variation4.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / array |
1.1 misho 1: --TEST-- 2: Test array_merge() function : usage variations - Diff. data types as array keys 3: --FILE-- 4: <?php 5: /* Prototype : array array_merge(array $arr1, array $arr2 [, array $...]) 6: * Description: Merges elements from passed arrays into one array 7: * Source code: ext/standard/array.c 8: */ 9: 10: /* 11: * Pass an array with different data types as keys to test how array_merge 12: * adds it onto an existing array 13: */ 14: 15: echo "*** Testing array_merge() : usage variations ***\n"; 16: 17: // Initialise function arguments not being substituted 18: $arr = array ('one' => 1, 'two' => 2); 19: 20: //get an unset variable 21: $unset_var = 10; 22: unset ($unset_var); 23: 24: // heredoc string 25: $heredoc = <<<EOT 26: hello world 27: EOT; 28: 29: // arrays with keys as different data types to be passed as $input 30: $inputs = array( 31: 32: // int data 33: /*1*/ 'int' => array( 34: 0 => 'zero', 35: 1 => 'one', 36: 12345 => 'positive', 37: -2345 => 'negative', 38: ), 39: 40: // float data 41: /*2*/ 'float' => array( 42: 10.5 => 'positive', 43: -10.5 => 'negative', 44: .5 => 'half', 45: ), 46: 47: /*3*/ 'extreme floats' => array( 48: 12.3456789000e10 => 'large', 49: 12.3456789000E-10 => 'small', 50: ), 51: 52: // null data 53: /*4*/ 'null uppercase' => array( 54: NULL => 'null 1', 55: ), 56: 57: /*5*/ 'null lowercase' => array( 58: null => 'null 2', 59: ), 60: 61: // boolean data 62: /*6*/ 'bool lowercase' => array( 63: true => 'lowert', 64: false => 'lowerf', 65: ), 66: 67: /*7*/ 'bool uppercase' => array( 68: TRUE => 'uppert', 69: FALSE => 'upperf', 70: ), 71: 72: // empty data 73: /*8*/ 'empty double quotes' => array( 74: "" => 'emptyd', 75: ), 76: 77: /*9*/ 'empty single quotes' => array( 78: '' => 'emptys', 79: ), 80: 81: // string data 82: /*10*/ 'string' => array( 83: "stringd" => 'stringd', 84: 'strings' => 'strings', 85: $heredoc => 'stringh', 86: ), 87: 88: // undefined data 89: /*11*/ 'undefined' => array( 90: @$undefined_var => 'undefined', 91: ), 92: 93: // unset data 94: /*12*/ 'unset' => array( 95: @$unset_var => 'unset', 96: ), 97: ); 98: 99: // loop through each element of $inputs to check the behavior of array_merge 100: $iterator = 1; 101: foreach($inputs as $key => $input) { 102: echo "\n-- Iteration $iterator: $key data --\n"; 103: var_dump( array_merge($input, $arr) ); 104: var_dump( array_merge($arr, $input) ); 105: $iterator++; 106: }; 107: 108: echo "Done"; 109: ?> 110: --EXPECTF-- 111: *** Testing array_merge() : usage variations *** 112: 113: -- Iteration 1: int data -- 114: array(6) { 115: [0]=> 116: string(4) "zero" 117: [1]=> 118: string(3) "one" 119: [2]=> 120: string(8) "positive" 121: [3]=> 122: string(8) "negative" 123: ["one"]=> 124: int(1) 125: ["two"]=> 126: int(2) 127: } 128: array(6) { 129: ["one"]=> 130: int(1) 131: ["two"]=> 132: int(2) 133: [0]=> 134: string(4) "zero" 135: [1]=> 136: string(3) "one" 137: [2]=> 138: string(8) "positive" 139: [3]=> 140: string(8) "negative" 141: } 142: 143: -- Iteration 2: float data -- 144: array(5) { 145: [0]=> 146: string(8) "positive" 147: [1]=> 148: string(8) "negative" 149: [2]=> 150: string(4) "half" 151: ["one"]=> 152: int(1) 153: ["two"]=> 154: int(2) 155: } 156: array(5) { 157: ["one"]=> 158: int(1) 159: ["two"]=> 160: int(2) 161: [0]=> 162: string(8) "positive" 163: [1]=> 164: string(8) "negative" 165: [2]=> 166: string(4) "half" 167: } 168: 169: -- Iteration 3: extreme floats data -- 170: array(4) { 171: [0]=> 172: string(5) "large" 173: [1]=> 174: string(5) "small" 175: ["one"]=> 176: int(1) 177: ["two"]=> 178: int(2) 179: } 180: array(4) { 181: ["one"]=> 182: int(1) 183: ["two"]=> 184: int(2) 185: [0]=> 186: string(5) "large" 187: [1]=> 188: string(5) "small" 189: } 190: 191: -- Iteration 4: null uppercase data -- 192: array(3) { 193: [""]=> 194: string(6) "null 1" 195: ["one"]=> 196: int(1) 197: ["two"]=> 198: int(2) 199: } 200: array(3) { 201: ["one"]=> 202: int(1) 203: ["two"]=> 204: int(2) 205: [""]=> 206: string(6) "null 1" 207: } 208: 209: -- Iteration 5: null lowercase data -- 210: array(3) { 211: [""]=> 212: string(6) "null 2" 213: ["one"]=> 214: int(1) 215: ["two"]=> 216: int(2) 217: } 218: array(3) { 219: ["one"]=> 220: int(1) 221: ["two"]=> 222: int(2) 223: [""]=> 224: string(6) "null 2" 225: } 226: 227: -- Iteration 6: bool lowercase data -- 228: array(4) { 229: [0]=> 230: string(6) "lowert" 231: [1]=> 232: string(6) "lowerf" 233: ["one"]=> 234: int(1) 235: ["two"]=> 236: int(2) 237: } 238: array(4) { 239: ["one"]=> 240: int(1) 241: ["two"]=> 242: int(2) 243: [0]=> 244: string(6) "lowert" 245: [1]=> 246: string(6) "lowerf" 247: } 248: 249: -- Iteration 7: bool uppercase data -- 250: array(4) { 251: [0]=> 252: string(6) "uppert" 253: [1]=> 254: string(6) "upperf" 255: ["one"]=> 256: int(1) 257: ["two"]=> 258: int(2) 259: } 260: array(4) { 261: ["one"]=> 262: int(1) 263: ["two"]=> 264: int(2) 265: [0]=> 266: string(6) "uppert" 267: [1]=> 268: string(6) "upperf" 269: } 270: 271: -- Iteration 8: empty double quotes data -- 272: array(3) { 273: [""]=> 274: string(6) "emptyd" 275: ["one"]=> 276: int(1) 277: ["two"]=> 278: int(2) 279: } 280: array(3) { 281: ["one"]=> 282: int(1) 283: ["two"]=> 284: int(2) 285: [""]=> 286: string(6) "emptyd" 287: } 288: 289: -- Iteration 9: empty single quotes data -- 290: array(3) { 291: [""]=> 292: string(6) "emptys" 293: ["one"]=> 294: int(1) 295: ["two"]=> 296: int(2) 297: } 298: array(3) { 299: ["one"]=> 300: int(1) 301: ["two"]=> 302: int(2) 303: [""]=> 304: string(6) "emptys" 305: } 306: 307: -- Iteration 10: string data -- 308: array(5) { 309: ["stringd"]=> 310: string(7) "stringd" 311: ["strings"]=> 312: string(7) "strings" 313: ["hello world"]=> 314: string(7) "stringh" 315: ["one"]=> 316: int(1) 317: ["two"]=> 318: int(2) 319: } 320: array(5) { 321: ["one"]=> 322: int(1) 323: ["two"]=> 324: int(2) 325: ["stringd"]=> 326: string(7) "stringd" 327: ["strings"]=> 328: string(7) "strings" 329: ["hello world"]=> 330: string(7) "stringh" 331: } 332: 333: -- Iteration 11: undefined data -- 334: array(3) { 335: [""]=> 336: string(9) "undefined" 337: ["one"]=> 338: int(1) 339: ["two"]=> 340: int(2) 341: } 342: array(3) { 343: ["one"]=> 344: int(1) 345: ["two"]=> 346: int(2) 347: [""]=> 348: string(9) "undefined" 349: } 350: 351: -- Iteration 12: unset data -- 352: array(3) { 353: [""]=> 354: string(5) "unset" 355: ["one"]=> 356: int(1) 357: ["two"]=> 358: int(2) 359: } 360: array(3) { 361: ["one"]=> 362: int(1) 363: ["two"]=> 364: int(2) 365: [""]=> 366: string(5) "unset" 367: } 368: Done