summaryrefslogtreecommitdiff
path: root/ext/standard/tests/array/asort_variation11.phpt
blob: c32c96cbf636cc5107b71b5268acb0b9486f5cb7 (plain)
ofshex dumpascii
0000 2d 2d 54 45 53 54 2d 2d 0a 54 65 73 74 20 61 73 6f 72 74 28 29 20 66 75 6e 63 74 69 6f 6e 20 3a --TEST--.Test.asort().function.:
0020 20 75 73 61 67 65 20 76 61 72 69 61 74 69 6f 6e 73 20 2d 20 73 6f 72 74 20 6d 69 78 65 64 20 76 .usage.variations.-.sort.mixed.v
0040 61 6c 75 65 73 2c 20 27 73 6f 72 74 5f 66 6c 61 67 73 27 20 61 73 20 64 65 66 61 75 6c 74 2f 53 alues,.'sort_flags'.as.default/S
0060 4f 52 54 5f 52 45 47 55 4c 41 52 20 28 4f 4b 20 74 6f 20 66 61 69 6c 20 61 73 20 72 65 73 75 6c ORT_REGULAR.(OK.to.fail.as.resul
0080 74 20 69 73 20 75 6e 70 72 65 64 65 63 74 61 62 6c 65 29 0a 2d 2d 46 49 4c 45 2d 2d 0a 3c 3f 70 t.is.unpredectable).--FILE--.<?p
00a0 68 70 0a 2f 2a 20 50 72 6f 74 6f 74 79 70 65 20 20 3a 20 62 6f 6f 6c 20 61 73 6f 72 74 20 28 20 hp./*.Prototype..:.bool.asort.(.
00c0 61 72 72 61 79 20 26 24 61 72 72 61 79 20 5b 2c 20 69 6e 74 20 24 73 6f 72 74 5f 66 6c 61 67 73 array.&$array.[,.int.$sort_flags
00e0 5d 20 29 0a 20 2a 20 44 65 73 63 72 69 70 74 69 6f 6e 3a 20 53 6f 72 74 20 61 6e 20 61 72 72 61 ].)..*.Description:.Sort.an.arra
0100 79 20 61 6e 64 20 6d 61 69 6e 74 61 69 6e 20 69 6e 64 65 78 20 61 73 73 6f 63 69 61 74 69 6f 6e y.and.maintain.index.association
0120 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 6c 65 6d 65 6e 74 73 20 77 69 6c 6c 20 ..................Elements.will.
0140 62 65 20 61 72 72 61 6e 67 65 64 20 66 72 6f 6d 20 6c 6f 77 65 73 74 20 74 6f 20 68 69 67 68 65 be.arranged.from.lowest.to.highe
0160 73 74 20 77 68 65 6e 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 20 63 6f 6d 70 6c 65 st.when.this.function.has.comple
0180 74 65 64 2e 0a 20 2a 20 53 6f 75 72 63 65 20 63 6f 64 65 3a 20 65 78 74 2f 73 74 61 6e 64 61 72 ted...*.Source.code:.ext/standar
01a0 64 2f 61 72 72 61 79 2e 63 0a 2a 2f 0a 0a 2f 2a 0a 20 2a 20 74 65 73 74 69 6e 67 20 61 73 6f 72 d/array.c.*/../*..*.testing.asor
01c0 74 28 29 20 62 79 20 70 72 6f 76 69 64 69 6e 67 20 6d 69 78 65 64 20 76 61 6c 75 65 20 61 72 72 t().by.providing.mixed.value.arr
01e0 61 79 20 66 6f 72 20 24 61 72 72 61 79 20 61 72 67 75 6d 65 6e 74 20 77 69 74 68 20 66 6f 6c 6c ay.for.$array.argument.with.foll
0200 6f 77 69 6e 67 20 66 6c 61 67 20 76 61 6c 75 65 73 2e 0a 20 2a 20 31 2e 66 6c 61 67 20 76 61 6c owing.flag.values...*.1.flag.val
0220 75 65 20 61 73 20 64 65 66 61 75 6c 74 0a 20 2a 20 32 2e 53 4f 52 54 5f 52 45 47 55 4c 41 52 20 ue.as.default..*.2.SORT_REGULAR.
0240 2d 20 63 6f 6d 70 61 72 65 20 69 74 65 6d 73 20 6e 6f 72 6d 61 6c 6c 79 0a 2a 2f 0a 0a 65 63 68 -.compare.items.normally.*/..ech
0260 6f 20 22 2a 2a 2a 20 54 65 73 74 69 6e 67 20 61 73 6f 72 74 28 29 20 3a 20 75 73 61 67 65 20 76 o."***.Testing.asort().:.usage.v
0280 61 72 69 61 74 69 6f 6e 73 20 2a 2a 2a 5c 6e 22 3b 0a 0a 2f 2f 20 6d 69 78 65 64 20 76 61 6c 75 ariations.***\n";..//.mixed.valu
02a0 65 20 61 72 72 61 79 20 77 69 74 68 20 64 69 66 66 65 72 65 6e 74 20 6b 65 79 20 76 61 6c 75 65 e.array.with.different.key.value
02c0 73 0a 24 6d 69 78 65 64 5f 76 61 6c 75 65 73 20 3d 20 61 72 72 61 79 20 28 0a 20 20 22 61 72 72 s.$mixed_values.=.array.(..."arr
02e0 61 79 31 22 20 3d 3e 20 61 72 72 61 79 28 29 2c 0a 20 20 22 61 72 72 61 79 32 22 20 3d 3e 20 61 ay1".=>.array(),..."array2".=>.a
0300 72 72 61 79 20 28 20 22 73 75 62 5f 61 72 72 61 79 5b 32 2c 31 5d 22 20 3d 3e 20 61 72 72 61 79 rray.(."sub_array[2,1]".=>.array
0320 28 33 33 2c 2d 35 2c 36 29 2c 20 22 73 75 62 5f 61 72 72 61 79 5b 32 2c 32 5d 22 20 3d 3e 20 61 (33,-5,6),."sub_array[2,2]".=>.a
0340 72 72 61 79 28 31 31 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rray(11),.......................
0360 22 73 75 62 5f 61 72 72 61 79 5b 32 2c 33 5d 22 20 3d 3e 20 61 72 72 61 79 28 32 32 2c 2d 35 35 "sub_array[2,3]".=>.array(22,-55
0380 29 2c 20 22 73 75 62 5f 61 72 72 61 79 5b 32 2c 34 5d 22 20 3d 3e 20 61 72 72 61 79 28 29 0a 20 ),."sub_array[2,4]".=>.array()..
03a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 2c 0a 20 20 34 20 3d 3e 20 34 2c 20 ...................),...4.=>.4,.
03c0 22 34 22 20 3d 3e 20 22 34 22 2c 20 34 2e 30 31 20 3d 3e 20 34 2e 30 31 2c 20 22 62 22 20 3d 3e "4".=>."4",.4.01.=>.4.01,."b".=>
03e0 20 22 62 22 2c 20 22 35 22 20 3d 3e 20 22 35 22 2c 20 2d 32 20 3d 3e 20 2d 32 2c 20 2d 32 2e 30 ."b",."5".=>."5",.-2.=>.-2,.-2.0
0400 31 20 3d 3e 20 2d 32 2e 30 31 2c 0a 20 20 2d 32 2e 39 38 39 38 39 20 3d 3e 20 2d 32 2e 39 38 39 1.=>.-2.01,...-2.98989.=>.-2.989
0420 38 39 2c 20 22 2d 2e 39 22 20 3d 3e 20 22 2d 2e 39 22 2c 20 22 54 72 75 65 22 20 3d 3e 20 22 54 89,."-.9".=>."-.9",."True".=>."T
0440 72 75 65 22 2c 20 22 22 20 3d 3e 20 20 22 22 2c 20 4e 55 4c 4c 20 3d 3e 20 4e 55 4c 4c 2c 0a 20 rue",."".=>.."",.NULL.=>.NULL,..
0460 20 22 61 62 22 20 3d 3e 20 22 61 62 22 2c 20 22 61 62 63 64 22 20 3d 3e 20 22 61 62 63 64 22 2c ."ab".=>."ab",."abcd".=>."abcd",
0480 20 30 2e 30 31 20 3d 3e 20 30 2e 30 31 2c 20 2d 30 20 3d 3e 20 2d 30 2c 20 27 27 20 3d 3e 20 27 .0.01.=>.0.01,.-0.=>.-0,.''.=>.'
04a0 27 20 2c 0a 20 20 22 61 62 63 64 5c 78 30 30 61 62 63 64 5c 78 30 30 61 62 63 64 22 20 3d 3e 20 '.,..."abcd\x00abcd\x00abcd".=>.
04c0 22 61 62 63 64 5c 78 30 30 61 62 63 64 5c 78 30 30 61 62 63 64 22 2c 20 30 2e 30 30 31 20 3d 3e "abcd\x00abcd\x00abcd",.0.001.=>
04e0 20 30 2e 30 30 31 0a 29 3b 0a 0a 65 63 68 6f 20 22 5c 6e 2d 2d 20 54 65 73 74 69 6e 67 20 61 73 .0.001.);..echo."\n--.Testing.as
0500 6f 72 74 28 29 20 62 79 20 73 75 70 70 6c 79 69 6e 67 20 6d 69 78 65 64 20 76 61 6c 75 65 20 61 ort().by.supplying.mixed.value.a
0520 72 72 61 79 2c 20 27 66 6c 61 67 27 20 76 61 6c 75 65 20 69 73 20 64 65 66 61 75 6c 74 20 2d 2d rray,.'flag'.value.is.default.--
0540 5c 6e 22 3b 0a 24 74 65 6d 70 5f 61 72 72 61 79 20 3d 20 24 6d 69 78 65 64 5f 76 61 6c 75 65 73 \n";.$temp_array.=.$mixed_values
0560 3b 0a 76 61 72 5f 64 75 6d 70 28 20 61 73 6f 72 74 28 24 74 65 6d 70 5f 61 72 72 61 79 29 20 29 ;.var_dump(.asort($temp_array).)
0580 3b 0a 76 61 72 5f 64 75 6d 70 28 24 74 65 6d 70 5f 61 72 72 61 79 29 3b 0a 0a 65 63 68 6f 20 22 ;.var_dump($temp_array);..echo."
05a0 5c 6e 2d 2d 20 54 65 73 74 69 6e 67 20 61 73 6f 72 74 28 29 20 62 79 20 73 75 70 70 6c 79 69 6e \n--.Testing.asort().by.supplyin
05c0 67 20 6d 69 78 65 64 20 76 61 6c 75 65 20 61 72 72 61 79 2c 20 27 66 6c 61 67 27 20 76 61 6c 75 g.mixed.value.array,.'flag'.valu
05e0 65 20 69 73 20 53 4f 52 54 5f 52 45 47 55 4c 41 52 20 2d 2d 5c 6e 22 3b 0a 24 74 65 6d 70 5f 61 e.is.SORT_REGULAR.--\n";.$temp_a
0600 72 72 61 79 20 3d 20 24 6d 69 78 65 64 5f 76 61 6c 75 65 73 3b 0a 76 61 72 5f 64 75 6d 70 28 20 rray.=.$mixed_values;.var_dump(.
0620 61 73 6f 72 74 28 24 74 65 6d 70 5f 61 72 72 61 79 2c 20 53 4f 52 54 5f 52 45 47 55 4c 41 52 29 asort($temp_array,.SORT_REGULAR)
0640 20 29 3b 0a 76 61 72 5f 64 75 6d 70 28 24 74 65 6d 70 5f 61 72 72 61 79 29 3b 0a 0a 65 63 68 6f .);.var_dump($temp_array);..echo
0660 20 22 44 6f 6e 65 5c 6e 22 3b 0a 3f 3e 0a 2d 2d 45 58 50 45 43 54 2d 2d 0a 2a 2a 2a 20 54 65 73 ."Done\n";.?>.--EXPECT--.***.Tes
0680 74 69 6e 67 20 61 73 6f 72 74 28 29 20 3a 20 75 73 61 67 65 20 76 61 72 69 61 74 69 6f 6e 73 20 ting.asort().:.usage.variations.
06a0 2a 2a 2a 0a 0a 2d 2d 20 54 65 73 74 69 6e 67 20 61 73 6f 72 74 28 29 20 62 79 20 73 75 70 70 6c ***..--.Testing.asort().by.suppl
06c0 79 69 6e 67 20 6d 69 78 65 64 20 76 61 6c 75 65 20 61 72 72 61 79 2c 20 27 66 6c 61 67 27 20 76 ying.mixed.value.array,.'flag'.v
06e0 61 6c 75 65 20 69 73 20 64 65 66 61 75 6c 74 20 2d 2d 0a 62 6f 6f 6c 28 74 72 75 65 29 0a 61 72 alue.is.default.--.bool(true).ar
0700 72 61 79 28 31 33 29 20 7b 0a 20 20 5b 2d 32 5d 3d 3e 0a 20 20 66 6c 6f 61 74 28 2d 32 2e 39 38 ray(13).{...[-2]=>...float(-2.98
0720 39 38 39 29 0a 20 20 5b 22 22 5d 3d 3e 0a 20 20 73 74 72 69 6e 67 28 30 29 20 22 22 0a 20 20 5b 989)...[""]=>...string(0).""...[
0740 22 2d 2e 39 22 5d 3d 3e 0a 20 20 73 74 72 69 6e 67 28 33 29 20 22 2d 2e 39 22 0a 20 20 5b 22 62 "-.9"]=>...string(3)."-.9"...["b
0760 22 5d 3d 3e 0a 20 20 73 74 72 69 6e 67 28 31 29 20 22 62 22 0a 20 20 5b 34 5d 3d 3e 0a 20 20 66 "]=>...string(1)."b"...[4]=>...f
0780 6c 6f 61 74 28 34 2e 30 31 29 0a 20 20 5b 35 5d 3d 3e 0a 20 20 73 74 72 69 6e 67 28 31 29 20 22 loat(4.01)...[5]=>...string(1)."
07a0 35 22 0a 20 20 5b 22 54 72 75 65 22 5d 3d 3e 0a 20 20 73 74 72 69 6e 67 28 34 29 20 22 54 72 75 5"...["True"]=>...string(4)."Tru
07c0 65 22 0a 20 20 5b 22 61 62 22 5d 3d 3e 0a 20 20 73 74 72 69 6e 67 28 32 29 20 22 61 62 22 0a 20 e"...["ab"]=>...string(2)."ab"..
07e0 20 5b 22 61 62 63 64 22 5d 3d 3e 0a 20 20 73 74 72 69 6e 67 28 34 29 20 22 61 62 63 64 22 0a 20 .["abcd"]=>...string(4)."abcd"..
0800 20 5b 22 61 62 63 64 00 61 62 63 64 00 61 62 63 64 22 5d 3d 3e 0a 20 20 73 74 72 69 6e 67 28 31 .["abcd.abcd.abcd"]=>...string(1
0820 34 29 20 22 61 62 63 64 00 61 62 63 64 00 61 62 63 64 22 0a 20 20 5b 30 5d 3d 3e 0a 20 20 66 6c 4)."abcd.abcd.abcd"...[0]=>...fl
0840 6f 61 74 28 30 2e 30 30 31 29 0a 20 20 5b 22 61 72 72 61 79 31 22 5d 3d 3e 0a 20 20 61 72 72 61 oat(0.001)...["array1"]=>...arra
0860 79 28 30 29 20 7b 0a 20 20 7d 0a 20 20 5b 22 61 72 72 61 79 32 22 5d 3d 3e 0a 20 20 61 72 72 61 y(0).{...}...["array2"]=>...arra
0880 79 28 34 29 20 7b 0a 20 20 20 20 5b 22 73 75 62 5f 61 72 72 61 79 5b 32 2c 31 5d 22 5d 3d 3e 0a y(4).{.....["sub_array[2,1]"]=>.
08a0 20 20 20 20 61 72 72 61 79 28 33 29 20 7b 0a 20 20 20 20 20 20 5b 30 5d 3d 3e 0a 20 20 20 20 20 ....array(3).{.......[0]=>......
08c0 20 69 6e 74 28 33 33 29 0a 20 20 20 20 20 20 5b 31 5d 3d 3e 0a 20 20 20 20 20 20 69 6e 74 28 2d .int(33).......[1]=>.......int(-
08e0 35 29 0a 20 20 20 20 20 20 5b 32 5d 3d 3e 0a 20 20 20 20 20 20 69 6e 74 28 36 29 0a 20 20 20 20 5).......[2]=>.......int(6).....
0900 7d 0a 20 20 20 20 5b 22 73 75 62 5f 61 72 72 61 79 5b 32 2c 32 5d 22 5d 3d 3e 0a 20 20 20 20 61 }.....["sub_array[2,2]"]=>.....a
0920 72 72 61 79 28 31 29 20 7b 0a 20 20 20 20 20 20 5b 30 5d 3d 3e 0a 20 20 20 20 20 20 69 6e 74 28 rray(1).{.......[0]=>.......int(
0940 31 31 29 0a 20 20 20 20 7d 0a 20 20 20 20 5b 22 73 75 62 5f 61 72 72 61 79 5b 32 2c 33 5d 22 5d 11).....}.....["sub_array[2,3]"]
0960 3d 3e 0a 20 20 20 20 61 72 72 61 79 28 32 29 20 7b 0a 20 20 20 20 20 20 5b 30 5d 3d 3e 0a 20 20 =>.....array(2).{.......[0]=>...
0980 20 20 20 20 69 6e 74 28 32 32 29 0a 20 20 20 20 20 20 5b 31 5d 3d 3e 0a 20 20 20 20 20 20 69 6e ....int(22).......[1]=>.......in
09a0 74 28 2d 35 35 29 0a 20 20 20 20 7d 0a 20 20 20 20 5b 22 73 75 62 5f 61 72 72 61 79 5b 32 2c 34 t(-55).....}.....["sub_array[2,4
09c0 5d 22 5d 3d 3e 0a 20 20 20 20 61 72 72 61 79 28 30 29 20 7b 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d ]"]=>.....array(0).{.....}...}.}
09e0 0a 0a 2d 2d 20 54 65 73 74 69 6e 67 20 61 73 6f 72 74 28 29 20 62 79 20 73 75 70 70 6c 79 69 6e ..--.Testing.asort().by.supplyin
0a00 67 20 6d 69 78 65 64 20 76 61 6c 75 65 20 61 72 72 61 79 2c 20 27 66 6c 61 67 27 20 76 61 6c 75 g.mixed.value.array,.'flag'.valu
0a20 65 20 69 73 20 53 4f 52 54 5f 52 45 47 55 4c 41 52 20 2d 2d 0a 62 6f 6f 6c 28 74 72 75 65 29 0a e.is.SORT_REGULAR.--.bool(true).
0a40 61 72 72 61 79 28 31 33 29 20 7b 0a 20 20 5b 2d 32 5d 3d 3e 0a 20 20 66 6c 6f 61 74 28 2d 32 2e array(13).{...[-2]=>...float(-2.
0a60 39 38 39 38 39 29 0a 20 20 5b 22 22 5d 3d 3e 0a 20 20 73 74 72 69 6e 67 28 30 29 20 22 22 0a 20 98989)...[""]=>...string(0).""..
0a80 20 5b 22 2d 2e 39 22 5d 3d 3e 0a 20 20 73 74 72 69 6e 67 28 33 29 20 22 2d 2e 39 22 0a 20 20 5b .["-.9"]=>...string(3)."-.9"...[
0aa0 22 62 22 5d 3d 3e 0a 20 20 73 74 72 69 6e 67 28 31 29 20 22 62 22 0a 20 20 5b 34 5d 3d 3e 0a 20 "b"]=>...string(1)."b"...[4]=>..
0ac0 20 66 6c 6f 61 74 28 34 2e 30 31 29 0a 20 20 5b 35 5d 3d 3e 0a 20 20 73 74 72 69 6e 67 28 31 29 .float(4.01)...[5]=>...string(1)
0ae0 20 22 35 22 0a 20 20 5b 22 54 72 75 65 22 5d 3d 3e 0a 20 20 73 74 72 69 6e 67 28 34 29 20 22 54 ."5"...["True"]=>...string(4)."T
0b00 72 75 65 22 0a 20 20 5b 22 61 62 22 5d 3d 3e 0a 20 20 73 74 72 69 6e 67 28 32 29 20 22 61 62 22 rue"...["ab"]=>...string(2)."ab"
0b20 0a 20 20 5b 22 61 62 63 64 22 5d 3d 3e 0a 20 20 73 74 72 69 6e 67 28 34 29 20 22 61 62 63 64 22 ...["abcd"]=>...string(4)."abcd"
0b40 0a 20 20 5b 22 61 62 63 64 00 61 62 63 64 00 61 62 63 64 22 5d 3d 3e 0a 20 20 73 74 72 69 6e 67 ...["abcd.abcd.abcd"]=>...string
0b60 28 31 34 29 20 22 61 62 63 64 00 61 62 63 64 00 61 62 63 64 22 0a 20 20 5b 30 5d 3d 3e 0a 20 20 (14)."abcd.abcd.abcd"...[0]=>...
0b80 66 6c 6f 61 74 28 30 2e 30 30 31 29 0a 20 20 5b 22 61 72 72 61 79 31 22 5d 3d 3e 0a 20 20 61 72 float(0.001)...["array1"]=>...ar
0ba0 72 61 79 28 30 29 20 7b 0a 20 20 7d 0a 20 20 5b 22 61 72 72 61 79 32 22 5d 3d 3e 0a 20 20 61 72 ray(0).{...}...["array2"]=>...ar
0bc0 72 61 79 28 34 29 20 7b 0a 20 20 20 20 5b 22 73 75 62 5f 61 72 72 61 79 5b 32 2c 31 5d 22 5d 3d ray(4).{.....["sub_array[2,1]"]=
0be0 3e 0a 20 20 20 20 61 72 72 61 79 28 33 29 20 7b 0a 20 20 20 20 20 20 5b 30 5d 3d 3e 0a 20 20 20 >.....array(3).{.......[0]=>....
0c00 20 20 20 69 6e 74 28 33 33 29 0a 20 20 20 20 20 20 5b 31 5d 3d 3e 0a 20 20 20 20 20 20 69 6e 74 ...int(33).......[1]=>.......int
0c20 28 2d 35 29 0a 20 20 20 20 20 20 5b 32 5d 3d 3e 0a 20 20 20 20 20 20 69 6e 74 28 36 29 0a 20 20 (-5).......[2]=>.......int(6)...
0c40 20 20 7d 0a 20 20 20 20 5b 22 73 75 62 5f 61 72 72 61 79 5b 32 2c 32 5d 22 5d 3d 3e 0a 20 20 20 ..}.....["sub_array[2,2]"]=>....
0c60 20 61 72 72 61 79 28 31 29 20 7b 0a 20 20 20 20 20 20 5b 30 5d 3d 3e 0a 20 20 20 20 20 20 69 6e .array(1).{.......[0]=>.......in
0c80 74 28 31 31 29 0a 20 20 20 20 7d 0a 20 20 20 20 5b 22 73 75 62 5f 61 72 72 61 79 5b 32 2c 33 5d t(11).....}.....["sub_array[2,3]
0ca0 22 5d 3d 3e 0a 20 20 20 20 61 72 72 61 79 28 32 29 20 7b 0a 20 20 20 20 20 20 5b 30 5d 3d 3e 0a "]=>.....array(2).{.......[0]=>.
0cc0 20 20 20 20 20 20 69 6e 74 28 32 32 29 0a 20 20 20 20 20 20 5b 31 5d 3d 3e 0a 20 20 20 20 20 20 ......int(22).......[1]=>.......
0ce0 69 6e 74 28 2d 35 35 29 0a 20 20 20 20 7d 0a 20 20 20 20 5b 22 73 75 62 5f 61 72 72 61 79 5b 32 int(-55).....}.....["sub_array[2
0d00 2c 34 5d 22 5d 3d 3e 0a 20 20 20 20 61 72 72 61 79 28 30 29 20 7b 0a 20 20 20 20 7d 0a 20 20 7d ,4]"]=>.....array(0).{.....}...}
0d20 0a 7d 0a 44 6f 6e 65 0a .}.Done.