Return to array_merge.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 3: --INI-- 4: precision=14 5: --FILE-- 6: <?php 7: /* Prototype: array array_merge(array $array1 [, array $array2 [, array $...]]); 8: Description: Merge one or more arrays 9: */ 10: 11: echo "\n*** Testing array_merge() basic functionality ***"; 12: $begin_array = array( 13: array(), 14: array( 1 => "string"), 15: array( "" => "string"), 16: array( -2.44444 => 12), 17: array( "a" => 1, "b" => -2.344, "b" => "string", "c" => NULL, "d" => -2.344), 18: array( 4 => 1, 3 => -2.344, "3" => "string", "2" => NULL,1 => -2.344), 19: array( NULL, 1.23 => "Hi", "string" => "hello", 20: array("" => "World", "-2.34" => "a", "0" => "b")) 21: ); 22: 23: $end_array = array( 24: array(), 25: array( 1 => "string"), 26: array( "" => "string"), 27: array( -2.44444 => 12), 28: array( "a" => 1, "b" => -2.344, "b" => "string", "c" => NULL, "d" => -2.344), 29: array( 4 => 1, 3 => -2.344, "3" => "string", "2" => NULL, 1=> -2.344), 30: array( NULL, 1.23 => "Hi", "string" => "hello", 31: array("" => "World", "-2.34" => "a", "0" => "b")) 32: ); 33: 34: /* loop through to merge two arrays */ 35: $count_outer = 0; 36: foreach($begin_array as $first) { 37: echo "\n\n--- Iteration $count_outer ---"; 38: $count_inner = 0; 39: foreach($end_array as $second) { 40: echo "\n-- Inner iteration $count_inner of Iteration $count_outer --\n"; 41: $result = array_merge($first, $second); 42: print_r($result); 43: $count_inner++; 44: } 45: $count_outer++; 46: } 47: 48: 49: echo "\n*** Testing array_merge() with three or more arrays ***\n"; 50: var_dump( array_merge( $end_array[0], 51: $end_array[5], 52: $end_array[4], 53: $end_array[6] 54: ) 55: ); 56: 57: var_dump( array_merge( $end_array[0], 58: $end_array[5], 59: array("array on fly"), 60: array("nullarray" => array()) 61: ) 62: ); 63: 64: 65: echo "\n*** Testing single array argument ***\n"; 66: /* Empty array */ 67: var_dump(array_merge(array())); 68: 69: /* associative array with string keys, which will not be re-indexed */ 70: var_dump(array_merge($begin_array[4])); 71: 72: /* associative array with numeric keys, which will be re-indexed */ 73: var_dump(array_merge($begin_array[5])); 74: 75: /* associative array with mixed keys and sub-array as element */ 76: var_dump(array_merge($begin_array[6])); 77: 78: echo "\n*** Testing array_merge() with typecasting non-array to array ***\n"; 79: var_dump(array_merge($begin_array[4], (array)"type1", (array)10, (array)12.34)); 80: 81: echo "\n*** Testing error conditions ***"; 82: /* Invalid argumens */ 83: var_dump(array_merge()); 84: var_dump(array_merge(100, 200)); 85: var_dump(array_merge($begin_array[0], $begin_array[1], 100)); 86: var_dump(array_merge($begin_array[0], $begin_array[1], $arr4)); 87: 88: echo "Done\n"; 89: ?> 90: --EXPECTF-- 91: *** Testing array_merge() basic functionality *** 92: 93: --- Iteration 0 --- 94: -- Inner iteration 0 of Iteration 0 -- 95: Array 96: ( 97: ) 98: 99: -- Inner iteration 1 of Iteration 0 -- 100: Array 101: ( 102: [0] => string 103: ) 104: 105: -- Inner iteration 2 of Iteration 0 -- 106: Array 107: ( 108: [] => string 109: ) 110: 111: -- Inner iteration 3 of Iteration 0 -- 112: Array 113: ( 114: [0] => 12 115: ) 116: 117: -- Inner iteration 4 of Iteration 0 -- 118: Array 119: ( 120: [a] => 1 121: [b] => string 122: [c] => 123: [d] => -2.344 124: ) 125: 126: -- Inner iteration 5 of Iteration 0 -- 127: Array 128: ( 129: [0] => 1 130: [1] => string 131: [2] => 132: [3] => -2.344 133: ) 134: 135: -- Inner iteration 6 of Iteration 0 -- 136: Array 137: ( 138: [0] => 139: [1] => Hi 140: [string] => hello 141: [2] => Array 142: ( 143: [] => World 144: [-2.34] => a 145: [0] => b 146: ) 147: 148: ) 149: 150: 151: --- Iteration 1 --- 152: -- Inner iteration 0 of Iteration 1 -- 153: Array 154: ( 155: [0] => string 156: ) 157: 158: -- Inner iteration 1 of Iteration 1 -- 159: Array 160: ( 161: [0] => string 162: [1] => string 163: ) 164: 165: -- Inner iteration 2 of Iteration 1 -- 166: Array 167: ( 168: [0] => string 169: [] => string 170: ) 171: 172: -- Inner iteration 3 of Iteration 1 -- 173: Array 174: ( 175: [0] => string 176: [1] => 12 177: ) 178: 179: -- Inner iteration 4 of Iteration 1 -- 180: Array 181: ( 182: [0] => string 183: [a] => 1 184: [b] => string 185: [c] => 186: [d] => -2.344 187: ) 188: 189: -- Inner iteration 5 of Iteration 1 -- 190: Array 191: ( 192: [0] => string 193: [1] => 1 194: [2] => string 195: [3] => 196: [4] => -2.344 197: ) 198: 199: -- Inner iteration 6 of Iteration 1 -- 200: Array 201: ( 202: [0] => string 203: [1] => 204: [2] => Hi 205: [string] => hello 206: [3] => Array 207: ( 208: [] => World 209: [-2.34] => a 210: [0] => b 211: ) 212: 213: ) 214: 215: 216: --- Iteration 2 --- 217: -- Inner iteration 0 of Iteration 2 -- 218: Array 219: ( 220: [] => string 221: ) 222: 223: -- Inner iteration 1 of Iteration 2 -- 224: Array 225: ( 226: [] => string 227: [0] => string 228: ) 229: 230: -- Inner iteration 2 of Iteration 2 -- 231: Array 232: ( 233: [] => string 234: ) 235: 236: -- Inner iteration 3 of Iteration 2 -- 237: Array 238: ( 239: [] => string 240: [0] => 12 241: ) 242: 243: -- Inner iteration 4 of Iteration 2 -- 244: Array 245: ( 246: [] => string 247: [a] => 1 248: [b] => string 249: [c] => 250: [d] => -2.344 251: ) 252: 253: -- Inner iteration 5 of Iteration 2 -- 254: Array 255: ( 256: [] => string 257: [0] => 1 258: [1] => string 259: [2] => 260: [3] => -2.344 261: ) 262: 263: -- Inner iteration 6 of Iteration 2 -- 264: Array 265: ( 266: [] => string 267: [0] => 268: [1] => Hi 269: [string] => hello 270: [2] => Array 271: ( 272: [] => World 273: [-2.34] => a 274: [0] => b 275: ) 276: 277: ) 278: 279: 280: --- Iteration 3 --- 281: -- Inner iteration 0 of Iteration 3 -- 282: Array 283: ( 284: [0] => 12 285: ) 286: 287: -- Inner iteration 1 of Iteration 3 -- 288: Array 289: ( 290: [0] => 12 291: [1] => string 292: ) 293: 294: -- Inner iteration 2 of Iteration 3 -- 295: Array 296: ( 297: [0] => 12 298: [] => string 299: ) 300: 301: -- Inner iteration 3 of Iteration 3 -- 302: Array 303: ( 304: [0] => 12 305: [1] => 12 306: ) 307: 308: -- Inner iteration 4 of Iteration 3 -- 309: Array 310: ( 311: [0] => 12 312: [a] => 1 313: [b] => string 314: [c] => 315: [d] => -2.344 316: ) 317: 318: -- Inner iteration 5 of Iteration 3 -- 319: Array 320: ( 321: [0] => 12 322: [1] => 1 323: [2] => string 324: [3] => 325: [4] => -2.344 326: ) 327: 328: -- Inner iteration 6 of Iteration 3 -- 329: Array 330: ( 331: [0] => 12 332: [1] => 333: [2] => Hi 334: [string] => hello 335: [3] => Array 336: ( 337: [] => World 338: [-2.34] => a 339: [0] => b 340: ) 341: 342: ) 343: 344: 345: --- Iteration 4 --- 346: -- Inner iteration 0 of Iteration 4 -- 347: Array 348: ( 349: [a] => 1 350: [b] => string 351: [c] => 352: [d] => -2.344 353: ) 354: 355: -- Inner iteration 1 of Iteration 4 -- 356: Array 357: ( 358: [a] => 1 359: [b] => string 360: [c] => 361: [d] => -2.344 362: [0] => string 363: ) 364: 365: -- Inner iteration 2 of Iteration 4 -- 366: Array 367: ( 368: [a] => 1 369: [b] => string 370: [c] => 371: [d] => -2.344 372: [] => string 373: ) 374: 375: -- Inner iteration 3 of Iteration 4 -- 376: Array 377: ( 378: [a] => 1 379: [b] => string 380: [c] => 381: [d] => -2.344 382: [0] => 12 383: ) 384: 385: -- Inner iteration 4 of Iteration 4 -- 386: Array 387: ( 388: [a] => 1 389: [b] => string 390: [c] => 391: [d] => -2.344 392: ) 393: 394: -- Inner iteration 5 of Iteration 4 -- 395: Array 396: ( 397: [a] => 1 398: [b] => string 399: [c] => 400: [d] => -2.344 401: [0] => 1 402: [1] => string 403: [2] => 404: [3] => -2.344 405: ) 406: 407: -- Inner iteration 6 of Iteration 4 -- 408: Array 409: ( 410: [a] => 1 411: [b] => string 412: [c] => 413: [d] => -2.344 414: [0] => 415: [1] => Hi 416: [string] => hello 417: [2] => Array 418: ( 419: [] => World 420: [-2.34] => a 421: [0] => b 422: ) 423: 424: ) 425: 426: 427: --- Iteration 5 --- 428: -- Inner iteration 0 of Iteration 5 -- 429: Array 430: ( 431: [0] => 1 432: [1] => string 433: [2] => 434: [3] => -2.344 435: ) 436: 437: -- Inner iteration 1 of Iteration 5 -- 438: Array 439: ( 440: [0] => 1 441: [1] => string 442: [2] => 443: [3] => -2.344 444: [4] => string 445: ) 446: 447: -- Inner iteration 2 of Iteration 5 -- 448: Array 449: ( 450: [0] => 1 451: [1] => string 452: [2] => 453: [3] => -2.344 454: [] => string 455: ) 456: 457: -- Inner iteration 3 of Iteration 5 -- 458: Array 459: ( 460: [0] => 1 461: [1] => string 462: [2] => 463: [3] => -2.344 464: [4] => 12 465: ) 466: 467: -- Inner iteration 4 of Iteration 5 -- 468: Array 469: ( 470: [0] => 1 471: [1] => string 472: [2] => 473: [3] => -2.344 474: [a] => 1 475: [b] => string 476: [c] => 477: [d] => -2.344 478: ) 479: 480: -- Inner iteration 5 of Iteration 5 -- 481: Array 482: ( 483: [0] => 1 484: [1] => string 485: [2] => 486: [3] => -2.344 487: [4] => 1 488: [5] => string 489: [6] => 490: [7] => -2.344 491: ) 492: 493: -- Inner iteration 6 of Iteration 5 -- 494: Array 495: ( 496: [0] => 1 497: [1] => string 498: [2] => 499: [3] => -2.344 500: [4] => 501: [5] => Hi 502: [string] => hello 503: [6] => Array 504: ( 505: [] => World 506: [-2.34] => a 507: [0] => b 508: ) 509: 510: ) 511: 512: 513: --- Iteration 6 --- 514: -- Inner iteration 0 of Iteration 6 -- 515: Array 516: ( 517: [0] => 518: [1] => Hi 519: [string] => hello 520: [2] => Array 521: ( 522: [] => World 523: [-2.34] => a 524: [0] => b 525: ) 526: 527: ) 528: 529: -- Inner iteration 1 of Iteration 6 -- 530: Array 531: ( 532: [0] => 533: [1] => Hi 534: [string] => hello 535: [2] => Array 536: ( 537: [] => World 538: [-2.34] => a 539: [0] => b 540: ) 541: 542: [3] => string 543: ) 544: 545: -- Inner iteration 2 of Iteration 6 -- 546: Array 547: ( 548: [0] => 549: [1] => Hi 550: [string] => hello 551: [2] => Array 552: ( 553: [] => World 554: [-2.34] => a 555: [0] => b 556: ) 557: 558: [] => string 559: ) 560: 561: -- Inner iteration 3 of Iteration 6 -- 562: Array 563: ( 564: [0] => 565: [1] => Hi 566: [string] => hello 567: [2] => Array 568: ( 569: [] => World 570: [-2.34] => a 571: [0] => b 572: ) 573: 574: [3] => 12 575: ) 576: 577: -- Inner iteration 4 of Iteration 6 -- 578: Array 579: ( 580: [0] => 581: [1] => Hi 582: [string] => hello 583: [2] => Array 584: ( 585: [] => World 586: [-2.34] => a 587: [0] => b 588: ) 589: 590: [a] => 1 591: [b] => string 592: [c] => 593: [d] => -2.344 594: ) 595: 596: -- Inner iteration 5 of Iteration 6 -- 597: Array 598: ( 599: [0] => 600: [1] => Hi 601: [string] => hello 602: [2] => Array 603: ( 604: [] => World 605: [-2.34] => a 606: [0] => b 607: ) 608: 609: [3] => 1 610: [4] => string 611: [5] => 612: [6] => -2.344 613: ) 614: 615: -- Inner iteration 6 of Iteration 6 -- 616: Array 617: ( 618: [0] => 619: [1] => Hi 620: [string] => hello 621: [2] => Array 622: ( 623: [] => World 624: [-2.34] => a 625: [0] => b 626: ) 627: 628: [3] => 629: [4] => Hi 630: [5] => Array 631: ( 632: [] => World 633: [-2.34] => a 634: [0] => b 635: ) 636: 637: ) 638: 639: *** Testing array_merge() with three or more arrays *** 640: array(12) { 641: [0]=> 642: int(1) 643: [1]=> 644: string(6) "string" 645: [2]=> 646: NULL 647: [3]=> 648: float(-2.344) 649: ["a"]=> 650: int(1) 651: ["b"]=> 652: string(6) "string" 653: ["c"]=> 654: NULL 655: ["d"]=> 656: float(-2.344) 657: [4]=> 658: NULL 659: [5]=> 660: string(2) "Hi" 661: ["string"]=> 662: string(5) "hello" 663: [6]=> 664: array(3) { 665: [""]=> 666: string(5) "World" 667: ["-2.34"]=> 668: string(1) "a" 669: [0]=> 670: string(1) "b" 671: } 672: } 673: array(6) { 674: [0]=> 675: int(1) 676: [1]=> 677: string(6) "string" 678: [2]=> 679: NULL 680: [3]=> 681: float(-2.344) 682: [4]=> 683: string(12) "array on fly" 684: ["nullarray"]=> 685: array(0) { 686: } 687: } 688: 689: *** Testing single array argument *** 690: array(0) { 691: } 692: array(4) { 693: ["a"]=> 694: int(1) 695: ["b"]=> 696: string(6) "string" 697: ["c"]=> 698: NULL 699: ["d"]=> 700: float(-2.344) 701: } 702: array(4) { 703: [0]=> 704: int(1) 705: [1]=> 706: string(6) "string" 707: [2]=> 708: NULL 709: [3]=> 710: float(-2.344) 711: } 712: array(4) { 713: [0]=> 714: NULL 715: [1]=> 716: string(2) "Hi" 717: ["string"]=> 718: string(5) "hello" 719: [2]=> 720: array(3) { 721: [""]=> 722: string(5) "World" 723: ["-2.34"]=> 724: string(1) "a" 725: [0]=> 726: string(1) "b" 727: } 728: } 729: 730: *** Testing array_merge() with typecasting non-array to array *** 731: array(7) { 732: ["a"]=> 733: int(1) 734: ["b"]=> 735: string(6) "string" 736: ["c"]=> 737: NULL 738: ["d"]=> 739: float(-2.344) 740: [0]=> 741: string(5) "type1" 742: [1]=> 743: int(10) 744: [2]=> 745: float(12.34) 746: } 747: 748: *** Testing error conditions *** 749: Warning: array_merge() expects at least 1 parameter, 0 given in %s on line %d 750: NULL 751: 752: Warning: array_merge(): Argument #1 is not an array in %s on line %d 753: NULL 754: 755: Warning: array_merge(): Argument #3 is not an array in %s on line %d 756: NULL 757: 758: Notice: Undefined variable: arr4 in %s on line %d 759: 760: Warning: array_merge(): Argument #3 is not an array in %s on line %d 761: NULL 762: Done