Annotation of embedaddon/php/ext/standard/tests/array/array_merge.phpt, revision 1.1
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
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>