Return to array_splice_variation3.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / array |
1.1 misho 1: --TEST-- 2: Test array_splice() function : usage variations - lengths and offsets 3: --FILE-- 4: <?php 5: /* 6: * proto array array_splice(array input, int offset [, int length [, array replacement]]) 7: * Function is implemented in ext/standard/array.c 8: */ 9: 10: echo "*** array_splice() function : usage variations - lengths and offsets\n"; 11: 12: 13: function test_splice ($offset, $length) 14: { 15: echo " - No replacement\n"; 16: $input_array=array(0,1,2,3,4,5); 17: var_dump (array_splice ($input_array,$offset,$length)); 18: var_dump ($input_array); 19: echo " - With replacement\n"; 20: $input_array=array(0,1,2,3,4,5); 21: var_dump (array_splice ($input_array,$offset,$length,array ("A","B","C"))); 22: var_dump ($input_array); 23: } 24: 25: echo "absolute offset - absolute length - cut from beginning\n"; 26: test_splice (0,2); 27: echo "absolute offset - absolute length - cut from middle\n"; 28: test_splice (2,2); 29: echo "absolute offset - absolute length - cut from end\n"; 30: test_splice (4,2); 31: echo "absolute offset - absolute length - attempt to cut past end\n"; 32: test_splice (4,4); 33: echo "absolute offset - absolute length - cut everything\n"; 34: test_splice (0,7); 35: echo "absolute offset - absolute length - cut nothing\n"; 36: test_splice (3,0); 37: 38: echo "absolute offset - relative length - cut from beginning\n"; 39: test_splice (0,-4); 40: 41: echo "absolute offset - relative length - cut from middle\n"; 42: test_splice (2,-2); 43: 44: echo "absolute offset - relative length - attempt to cut form before beginning \n"; 45: test_splice (0,-7); 46: 47: echo "absolute offset - relative length - cut nothing\n"; 48: test_splice (2,-7); 49: 50: echo "relative offset - absolute length - cut from beginning\n"; 51: test_splice (-6,2); 52: 53: echo "relative offset - absolute length - cut from middle\n"; 54: test_splice (-4,2); 55: echo "relative offset - absolute length - cut from end\n"; 56: test_splice (-2,2); 57: echo "relative offset - absolute length - attempt to cut past end\n"; 58: test_splice (-2,4); 59: echo "relative offset - absolute length - cut everything\n"; 60: test_splice (-6,6); 61: echo "relative offset - absolute length - cut nothing\n"; 62: test_splice (-6,0); 63: 64: echo "relative offset - relative length - cut from beginning\n"; 65: test_splice (-6,-4); 66: 67: echo "relative offset - relative length - cut from middle\n"; 68: test_splice (-4,-2); 69: 70: echo "relative offset - relative length - cut nothing\n"; 71: test_splice (-4,-7); 72: echo "Done\n"; 73: ?> 74: 75: --EXPECT-- 76: *** array_splice() function : usage variations - lengths and offsets 77: absolute offset - absolute length - cut from beginning 78: - No replacement 79: array(2) { 80: [0]=> 81: int(0) 82: [1]=> 83: int(1) 84: } 85: array(4) { 86: [0]=> 87: int(2) 88: [1]=> 89: int(3) 90: [2]=> 91: int(4) 92: [3]=> 93: int(5) 94: } 95: - With replacement 96: array(2) { 97: [0]=> 98: int(0) 99: [1]=> 100: int(1) 101: } 102: array(7) { 103: [0]=> 104: string(1) "A" 105: [1]=> 106: string(1) "B" 107: [2]=> 108: string(1) "C" 109: [3]=> 110: int(2) 111: [4]=> 112: int(3) 113: [5]=> 114: int(4) 115: [6]=> 116: int(5) 117: } 118: absolute offset - absolute length - cut from middle 119: - No replacement 120: array(2) { 121: [0]=> 122: int(2) 123: [1]=> 124: int(3) 125: } 126: array(4) { 127: [0]=> 128: int(0) 129: [1]=> 130: int(1) 131: [2]=> 132: int(4) 133: [3]=> 134: int(5) 135: } 136: - With replacement 137: array(2) { 138: [0]=> 139: int(2) 140: [1]=> 141: int(3) 142: } 143: array(7) { 144: [0]=> 145: int(0) 146: [1]=> 147: int(1) 148: [2]=> 149: string(1) "A" 150: [3]=> 151: string(1) "B" 152: [4]=> 153: string(1) "C" 154: [5]=> 155: int(4) 156: [6]=> 157: int(5) 158: } 159: absolute offset - absolute length - cut from end 160: - No replacement 161: array(2) { 162: [0]=> 163: int(4) 164: [1]=> 165: int(5) 166: } 167: array(4) { 168: [0]=> 169: int(0) 170: [1]=> 171: int(1) 172: [2]=> 173: int(2) 174: [3]=> 175: int(3) 176: } 177: - With replacement 178: array(2) { 179: [0]=> 180: int(4) 181: [1]=> 182: int(5) 183: } 184: array(7) { 185: [0]=> 186: int(0) 187: [1]=> 188: int(1) 189: [2]=> 190: int(2) 191: [3]=> 192: int(3) 193: [4]=> 194: string(1) "A" 195: [5]=> 196: string(1) "B" 197: [6]=> 198: string(1) "C" 199: } 200: absolute offset - absolute length - attempt to cut past end 201: - No replacement 202: array(2) { 203: [0]=> 204: int(4) 205: [1]=> 206: int(5) 207: } 208: array(4) { 209: [0]=> 210: int(0) 211: [1]=> 212: int(1) 213: [2]=> 214: int(2) 215: [3]=> 216: int(3) 217: } 218: - With replacement 219: array(2) { 220: [0]=> 221: int(4) 222: [1]=> 223: int(5) 224: } 225: array(7) { 226: [0]=> 227: int(0) 228: [1]=> 229: int(1) 230: [2]=> 231: int(2) 232: [3]=> 233: int(3) 234: [4]=> 235: string(1) "A" 236: [5]=> 237: string(1) "B" 238: [6]=> 239: string(1) "C" 240: } 241: absolute offset - absolute length - cut everything 242: - No replacement 243: array(6) { 244: [0]=> 245: int(0) 246: [1]=> 247: int(1) 248: [2]=> 249: int(2) 250: [3]=> 251: int(3) 252: [4]=> 253: int(4) 254: [5]=> 255: int(5) 256: } 257: array(0) { 258: } 259: - With replacement 260: array(6) { 261: [0]=> 262: int(0) 263: [1]=> 264: int(1) 265: [2]=> 266: int(2) 267: [3]=> 268: int(3) 269: [4]=> 270: int(4) 271: [5]=> 272: int(5) 273: } 274: array(3) { 275: [0]=> 276: string(1) "A" 277: [1]=> 278: string(1) "B" 279: [2]=> 280: string(1) "C" 281: } 282: absolute offset - absolute length - cut nothing 283: - No replacement 284: array(0) { 285: } 286: array(6) { 287: [0]=> 288: int(0) 289: [1]=> 290: int(1) 291: [2]=> 292: int(2) 293: [3]=> 294: int(3) 295: [4]=> 296: int(4) 297: [5]=> 298: int(5) 299: } 300: - With replacement 301: array(0) { 302: } 303: array(9) { 304: [0]=> 305: int(0) 306: [1]=> 307: int(1) 308: [2]=> 309: int(2) 310: [3]=> 311: string(1) "A" 312: [4]=> 313: string(1) "B" 314: [5]=> 315: string(1) "C" 316: [6]=> 317: int(3) 318: [7]=> 319: int(4) 320: [8]=> 321: int(5) 322: } 323: absolute offset - relative length - cut from beginning 324: - No replacement 325: array(2) { 326: [0]=> 327: int(0) 328: [1]=> 329: int(1) 330: } 331: array(4) { 332: [0]=> 333: int(2) 334: [1]=> 335: int(3) 336: [2]=> 337: int(4) 338: [3]=> 339: int(5) 340: } 341: - With replacement 342: array(2) { 343: [0]=> 344: int(0) 345: [1]=> 346: int(1) 347: } 348: array(7) { 349: [0]=> 350: string(1) "A" 351: [1]=> 352: string(1) "B" 353: [2]=> 354: string(1) "C" 355: [3]=> 356: int(2) 357: [4]=> 358: int(3) 359: [5]=> 360: int(4) 361: [6]=> 362: int(5) 363: } 364: absolute offset - relative length - cut from middle 365: - No replacement 366: array(2) { 367: [0]=> 368: int(2) 369: [1]=> 370: int(3) 371: } 372: array(4) { 373: [0]=> 374: int(0) 375: [1]=> 376: int(1) 377: [2]=> 378: int(4) 379: [3]=> 380: int(5) 381: } 382: - With replacement 383: array(2) { 384: [0]=> 385: int(2) 386: [1]=> 387: int(3) 388: } 389: array(7) { 390: [0]=> 391: int(0) 392: [1]=> 393: int(1) 394: [2]=> 395: string(1) "A" 396: [3]=> 397: string(1) "B" 398: [4]=> 399: string(1) "C" 400: [5]=> 401: int(4) 402: [6]=> 403: int(5) 404: } 405: absolute offset - relative length - attempt to cut form before beginning 406: - No replacement 407: array(0) { 408: } 409: array(6) { 410: [0]=> 411: int(0) 412: [1]=> 413: int(1) 414: [2]=> 415: int(2) 416: [3]=> 417: int(3) 418: [4]=> 419: int(4) 420: [5]=> 421: int(5) 422: } 423: - With replacement 424: array(0) { 425: } 426: array(9) { 427: [0]=> 428: string(1) "A" 429: [1]=> 430: string(1) "B" 431: [2]=> 432: string(1) "C" 433: [3]=> 434: int(0) 435: [4]=> 436: int(1) 437: [5]=> 438: int(2) 439: [6]=> 440: int(3) 441: [7]=> 442: int(4) 443: [8]=> 444: int(5) 445: } 446: absolute offset - relative length - cut nothing 447: - No replacement 448: array(0) { 449: } 450: array(6) { 451: [0]=> 452: int(0) 453: [1]=> 454: int(1) 455: [2]=> 456: int(2) 457: [3]=> 458: int(3) 459: [4]=> 460: int(4) 461: [5]=> 462: int(5) 463: } 464: - With replacement 465: array(0) { 466: } 467: array(9) { 468: [0]=> 469: int(0) 470: [1]=> 471: int(1) 472: [2]=> 473: string(1) "A" 474: [3]=> 475: string(1) "B" 476: [4]=> 477: string(1) "C" 478: [5]=> 479: int(2) 480: [6]=> 481: int(3) 482: [7]=> 483: int(4) 484: [8]=> 485: int(5) 486: } 487: relative offset - absolute length - cut from beginning 488: - No replacement 489: array(2) { 490: [0]=> 491: int(0) 492: [1]=> 493: int(1) 494: } 495: array(4) { 496: [0]=> 497: int(2) 498: [1]=> 499: int(3) 500: [2]=> 501: int(4) 502: [3]=> 503: int(5) 504: } 505: - With replacement 506: array(2) { 507: [0]=> 508: int(0) 509: [1]=> 510: int(1) 511: } 512: array(7) { 513: [0]=> 514: string(1) "A" 515: [1]=> 516: string(1) "B" 517: [2]=> 518: string(1) "C" 519: [3]=> 520: int(2) 521: [4]=> 522: int(3) 523: [5]=> 524: int(4) 525: [6]=> 526: int(5) 527: } 528: relative offset - absolute length - cut from middle 529: - No replacement 530: array(2) { 531: [0]=> 532: int(2) 533: [1]=> 534: int(3) 535: } 536: array(4) { 537: [0]=> 538: int(0) 539: [1]=> 540: int(1) 541: [2]=> 542: int(4) 543: [3]=> 544: int(5) 545: } 546: - With replacement 547: array(2) { 548: [0]=> 549: int(2) 550: [1]=> 551: int(3) 552: } 553: array(7) { 554: [0]=> 555: int(0) 556: [1]=> 557: int(1) 558: [2]=> 559: string(1) "A" 560: [3]=> 561: string(1) "B" 562: [4]=> 563: string(1) "C" 564: [5]=> 565: int(4) 566: [6]=> 567: int(5) 568: } 569: relative offset - absolute length - cut from end 570: - No replacement 571: array(2) { 572: [0]=> 573: int(4) 574: [1]=> 575: int(5) 576: } 577: array(4) { 578: [0]=> 579: int(0) 580: [1]=> 581: int(1) 582: [2]=> 583: int(2) 584: [3]=> 585: int(3) 586: } 587: - With replacement 588: array(2) { 589: [0]=> 590: int(4) 591: [1]=> 592: int(5) 593: } 594: array(7) { 595: [0]=> 596: int(0) 597: [1]=> 598: int(1) 599: [2]=> 600: int(2) 601: [3]=> 602: int(3) 603: [4]=> 604: string(1) "A" 605: [5]=> 606: string(1) "B" 607: [6]=> 608: string(1) "C" 609: } 610: relative offset - absolute length - attempt to cut past end 611: - No replacement 612: array(2) { 613: [0]=> 614: int(4) 615: [1]=> 616: int(5) 617: } 618: array(4) { 619: [0]=> 620: int(0) 621: [1]=> 622: int(1) 623: [2]=> 624: int(2) 625: [3]=> 626: int(3) 627: } 628: - With replacement 629: array(2) { 630: [0]=> 631: int(4) 632: [1]=> 633: int(5) 634: } 635: array(7) { 636: [0]=> 637: int(0) 638: [1]=> 639: int(1) 640: [2]=> 641: int(2) 642: [3]=> 643: int(3) 644: [4]=> 645: string(1) "A" 646: [5]=> 647: string(1) "B" 648: [6]=> 649: string(1) "C" 650: } 651: relative offset - absolute length - cut everything 652: - No replacement 653: array(6) { 654: [0]=> 655: int(0) 656: [1]=> 657: int(1) 658: [2]=> 659: int(2) 660: [3]=> 661: int(3) 662: [4]=> 663: int(4) 664: [5]=> 665: int(5) 666: } 667: array(0) { 668: } 669: - With replacement 670: array(6) { 671: [0]=> 672: int(0) 673: [1]=> 674: int(1) 675: [2]=> 676: int(2) 677: [3]=> 678: int(3) 679: [4]=> 680: int(4) 681: [5]=> 682: int(5) 683: } 684: array(3) { 685: [0]=> 686: string(1) "A" 687: [1]=> 688: string(1) "B" 689: [2]=> 690: string(1) "C" 691: } 692: relative offset - absolute length - cut nothing 693: - No replacement 694: array(0) { 695: } 696: array(6) { 697: [0]=> 698: int(0) 699: [1]=> 700: int(1) 701: [2]=> 702: int(2) 703: [3]=> 704: int(3) 705: [4]=> 706: int(4) 707: [5]=> 708: int(5) 709: } 710: - With replacement 711: array(0) { 712: } 713: array(9) { 714: [0]=> 715: string(1) "A" 716: [1]=> 717: string(1) "B" 718: [2]=> 719: string(1) "C" 720: [3]=> 721: int(0) 722: [4]=> 723: int(1) 724: [5]=> 725: int(2) 726: [6]=> 727: int(3) 728: [7]=> 729: int(4) 730: [8]=> 731: int(5) 732: } 733: relative offset - relative length - cut from beginning 734: - No replacement 735: array(2) { 736: [0]=> 737: int(0) 738: [1]=> 739: int(1) 740: } 741: array(4) { 742: [0]=> 743: int(2) 744: [1]=> 745: int(3) 746: [2]=> 747: int(4) 748: [3]=> 749: int(5) 750: } 751: - With replacement 752: array(2) { 753: [0]=> 754: int(0) 755: [1]=> 756: int(1) 757: } 758: array(7) { 759: [0]=> 760: string(1) "A" 761: [1]=> 762: string(1) "B" 763: [2]=> 764: string(1) "C" 765: [3]=> 766: int(2) 767: [4]=> 768: int(3) 769: [5]=> 770: int(4) 771: [6]=> 772: int(5) 773: } 774: relative offset - relative length - cut from middle 775: - No replacement 776: array(2) { 777: [0]=> 778: int(2) 779: [1]=> 780: int(3) 781: } 782: array(4) { 783: [0]=> 784: int(0) 785: [1]=> 786: int(1) 787: [2]=> 788: int(4) 789: [3]=> 790: int(5) 791: } 792: - With replacement 793: array(2) { 794: [0]=> 795: int(2) 796: [1]=> 797: int(3) 798: } 799: array(7) { 800: [0]=> 801: int(0) 802: [1]=> 803: int(1) 804: [2]=> 805: string(1) "A" 806: [3]=> 807: string(1) "B" 808: [4]=> 809: string(1) "C" 810: [5]=> 811: int(4) 812: [6]=> 813: int(5) 814: } 815: relative offset - relative length - cut nothing 816: - No replacement 817: array(0) { 818: } 819: array(6) { 820: [0]=> 821: int(0) 822: [1]=> 823: int(1) 824: [2]=> 825: int(2) 826: [3]=> 827: int(3) 828: [4]=> 829: int(4) 830: [5]=> 831: int(5) 832: } 833: - With replacement 834: array(0) { 835: } 836: array(9) { 837: [0]=> 838: int(0) 839: [1]=> 840: int(1) 841: [2]=> 842: string(1) "A" 843: [3]=> 844: string(1) "B" 845: [4]=> 846: string(1) "C" 847: [5]=> 848: int(2) 849: [6]=> 850: int(3) 851: [7]=> 852: int(4) 853: [8]=> 854: int(5) 855: } 856: Done