002.phpt 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688
  1. --TEST--
  2. Test arsort, asort, krsort, ksort, rsort, and sort
  3. --INI--
  4. precision=14
  5. --FILE--
  6. <?php
  7. require(__DIR__ . '/data.inc');
  8. function test_sort ($sort_function, $data) {
  9. echo "\n -- Testing $sort_function() -- \n";
  10. echo "No second argument:\n";
  11. $sort_function ($data);
  12. var_dump ($data);
  13. echo "Using SORT_REGULAR:\n";
  14. $sort_function ($data, SORT_REGULAR);
  15. var_dump ($data);
  16. echo "Using SORT_NUMERIC:\n";
  17. $sort_function ($data, SORT_NUMERIC);
  18. var_dump ($data);
  19. echo "Using SORT_STRING\n";
  20. $sort_function ($data, SORT_STRING);
  21. var_dump ($data);
  22. }
  23. echo "Unsorted data:\n";
  24. var_dump ($data);
  25. foreach (array ('arsort', 'asort', 'krsort', 'ksort', 'rsort', 'sort') as $test_function) {
  26. test_sort ($test_function, $data);
  27. }
  28. ?>
  29. --EXPECTF--
  30. Unsorted data:
  31. array(8) {
  32. [0]=>
  33. string(3) "PHP"
  34. [17]=>
  35. string(27) "PHP: Hypertext Preprocessor"
  36. [5]=>
  37. string(4) "Test"
  38. ["test"]=>
  39. int(27)
  40. [1000]=>
  41. string(4) "test"
  42. [-1000]=>
  43. array(2) {
  44. [0]=>
  45. string(6) "banana"
  46. [1]=>
  47. string(6) "orange"
  48. }
  49. [1001]=>
  50. string(6) "monkey"
  51. [16777216]=>
  52. float(-0.3333333333333333)
  53. }
  54. -- Testing arsort() --
  55. No second argument:
  56. array(8) {
  57. [-1000]=>
  58. array(2) {
  59. [0]=>
  60. string(6) "banana"
  61. [1]=>
  62. string(6) "orange"
  63. }
  64. [1000]=>
  65. string(4) "test"
  66. [1001]=>
  67. string(6) "monkey"
  68. [5]=>
  69. string(4) "Test"
  70. [17]=>
  71. string(27) "PHP: Hypertext Preprocessor"
  72. [0]=>
  73. string(3) "PHP"
  74. ["test"]=>
  75. int(27)
  76. [16777216]=>
  77. float(-0.3333333333333333)
  78. }
  79. Using SORT_REGULAR:
  80. array(8) {
  81. [-1000]=>
  82. array(2) {
  83. [0]=>
  84. string(6) "banana"
  85. [1]=>
  86. string(6) "orange"
  87. }
  88. [1000]=>
  89. string(4) "test"
  90. [1001]=>
  91. string(6) "monkey"
  92. [5]=>
  93. string(4) "Test"
  94. [17]=>
  95. string(27) "PHP: Hypertext Preprocessor"
  96. [0]=>
  97. string(3) "PHP"
  98. ["test"]=>
  99. int(27)
  100. [16777216]=>
  101. float(-0.3333333333333333)
  102. }
  103. Using SORT_NUMERIC:
  104. array(8) {
  105. ["test"]=>
  106. int(27)
  107. [-1000]=>
  108. array(2) {
  109. [0]=>
  110. string(6) "banana"
  111. [1]=>
  112. string(6) "orange"
  113. }
  114. [1000]=>
  115. string(4) "test"
  116. [1001]=>
  117. string(6) "monkey"
  118. [5]=>
  119. string(4) "Test"
  120. [17]=>
  121. string(27) "PHP: Hypertext Preprocessor"
  122. [0]=>
  123. string(3) "PHP"
  124. [16777216]=>
  125. float(-0.3333333333333333)
  126. }
  127. Using SORT_STRING
  128. Warning: Array to string conversion in %s on line %d
  129. Warning: Array to string conversion in %s on line %d
  130. Warning: Array to string conversion in %s on line %d
  131. Warning: Array to string conversion in %s on line %d
  132. Warning: Array to string conversion in %s on line %d
  133. Warning: Array to string conversion in %s on line %d
  134. array(8) {
  135. [1000]=>
  136. string(4) "test"
  137. [1001]=>
  138. string(6) "monkey"
  139. [5]=>
  140. string(4) "Test"
  141. [17]=>
  142. string(27) "PHP: Hypertext Preprocessor"
  143. [0]=>
  144. string(3) "PHP"
  145. [-1000]=>
  146. array(2) {
  147. [0]=>
  148. string(6) "banana"
  149. [1]=>
  150. string(6) "orange"
  151. }
  152. ["test"]=>
  153. int(27)
  154. [16777216]=>
  155. float(-0.3333333333333333)
  156. }
  157. -- Testing asort() --
  158. No second argument:
  159. array(8) {
  160. [16777216]=>
  161. float(-0.3333333333333333)
  162. ["test"]=>
  163. int(27)
  164. [0]=>
  165. string(3) "PHP"
  166. [17]=>
  167. string(27) "PHP: Hypertext Preprocessor"
  168. [5]=>
  169. string(4) "Test"
  170. [1001]=>
  171. string(6) "monkey"
  172. [1000]=>
  173. string(4) "test"
  174. [-1000]=>
  175. array(2) {
  176. [0]=>
  177. string(6) "banana"
  178. [1]=>
  179. string(6) "orange"
  180. }
  181. }
  182. Using SORT_REGULAR:
  183. array(8) {
  184. [16777216]=>
  185. float(-0.3333333333333333)
  186. ["test"]=>
  187. int(27)
  188. [0]=>
  189. string(3) "PHP"
  190. [17]=>
  191. string(27) "PHP: Hypertext Preprocessor"
  192. [5]=>
  193. string(4) "Test"
  194. [1001]=>
  195. string(6) "monkey"
  196. [1000]=>
  197. string(4) "test"
  198. [-1000]=>
  199. array(2) {
  200. [0]=>
  201. string(6) "banana"
  202. [1]=>
  203. string(6) "orange"
  204. }
  205. }
  206. Using SORT_NUMERIC:
  207. array(8) {
  208. [16777216]=>
  209. float(-0.3333333333333333)
  210. [0]=>
  211. string(3) "PHP"
  212. [17]=>
  213. string(27) "PHP: Hypertext Preprocessor"
  214. [5]=>
  215. string(4) "Test"
  216. [1001]=>
  217. string(6) "monkey"
  218. [1000]=>
  219. string(4) "test"
  220. [-1000]=>
  221. array(2) {
  222. [0]=>
  223. string(6) "banana"
  224. [1]=>
  225. string(6) "orange"
  226. }
  227. ["test"]=>
  228. int(27)
  229. }
  230. Using SORT_STRING
  231. Warning: Array to string conversion in %s on line %d
  232. Warning: Array to string conversion in %s on line %d
  233. Warning: Array to string conversion in %s on line %d
  234. Warning: Array to string conversion in %s on line %d
  235. Warning: Array to string conversion in %s on line %d
  236. array(8) {
  237. [16777216]=>
  238. float(-0.3333333333333333)
  239. ["test"]=>
  240. int(27)
  241. [-1000]=>
  242. array(2) {
  243. [0]=>
  244. string(6) "banana"
  245. [1]=>
  246. string(6) "orange"
  247. }
  248. [0]=>
  249. string(3) "PHP"
  250. [17]=>
  251. string(27) "PHP: Hypertext Preprocessor"
  252. [5]=>
  253. string(4) "Test"
  254. [1001]=>
  255. string(6) "monkey"
  256. [1000]=>
  257. string(4) "test"
  258. }
  259. -- Testing krsort() --
  260. No second argument:
  261. array(8) {
  262. [16777216]=>
  263. float(-0.3333333333333333)
  264. [1001]=>
  265. string(6) "monkey"
  266. [1000]=>
  267. string(4) "test"
  268. [17]=>
  269. string(27) "PHP: Hypertext Preprocessor"
  270. [5]=>
  271. string(4) "Test"
  272. [0]=>
  273. string(3) "PHP"
  274. ["test"]=>
  275. int(27)
  276. [-1000]=>
  277. array(2) {
  278. [0]=>
  279. string(6) "banana"
  280. [1]=>
  281. string(6) "orange"
  282. }
  283. }
  284. Using SORT_REGULAR:
  285. array(8) {
  286. [16777216]=>
  287. float(-0.3333333333333333)
  288. [1001]=>
  289. string(6) "monkey"
  290. [1000]=>
  291. string(4) "test"
  292. [17]=>
  293. string(27) "PHP: Hypertext Preprocessor"
  294. [5]=>
  295. string(4) "Test"
  296. [0]=>
  297. string(3) "PHP"
  298. ["test"]=>
  299. int(27)
  300. [-1000]=>
  301. array(2) {
  302. [0]=>
  303. string(6) "banana"
  304. [1]=>
  305. string(6) "orange"
  306. }
  307. }
  308. Using SORT_NUMERIC:
  309. array(8) {
  310. [16777216]=>
  311. float(-0.3333333333333333)
  312. [1001]=>
  313. string(6) "monkey"
  314. [1000]=>
  315. string(4) "test"
  316. [17]=>
  317. string(27) "PHP: Hypertext Preprocessor"
  318. [5]=>
  319. string(4) "Test"
  320. [0]=>
  321. string(3) "PHP"
  322. ["test"]=>
  323. int(27)
  324. [-1000]=>
  325. array(2) {
  326. [0]=>
  327. string(6) "banana"
  328. [1]=>
  329. string(6) "orange"
  330. }
  331. }
  332. Using SORT_STRING
  333. array(8) {
  334. ["test"]=>
  335. int(27)
  336. [5]=>
  337. string(4) "Test"
  338. [17]=>
  339. string(27) "PHP: Hypertext Preprocessor"
  340. [16777216]=>
  341. float(-0.3333333333333333)
  342. [1001]=>
  343. string(6) "monkey"
  344. [1000]=>
  345. string(4) "test"
  346. [0]=>
  347. string(3) "PHP"
  348. [-1000]=>
  349. array(2) {
  350. [0]=>
  351. string(6) "banana"
  352. [1]=>
  353. string(6) "orange"
  354. }
  355. }
  356. -- Testing ksort() --
  357. No second argument:
  358. array(8) {
  359. [-1000]=>
  360. array(2) {
  361. [0]=>
  362. string(6) "banana"
  363. [1]=>
  364. string(6) "orange"
  365. }
  366. [0]=>
  367. string(3) "PHP"
  368. ["test"]=>
  369. int(27)
  370. [5]=>
  371. string(4) "Test"
  372. [17]=>
  373. string(27) "PHP: Hypertext Preprocessor"
  374. [1000]=>
  375. string(4) "test"
  376. [1001]=>
  377. string(6) "monkey"
  378. [16777216]=>
  379. float(-0.3333333333333333)
  380. }
  381. Using SORT_REGULAR:
  382. array(8) {
  383. [-1000]=>
  384. array(2) {
  385. [0]=>
  386. string(6) "banana"
  387. [1]=>
  388. string(6) "orange"
  389. }
  390. [0]=>
  391. string(3) "PHP"
  392. ["test"]=>
  393. int(27)
  394. [5]=>
  395. string(4) "Test"
  396. [17]=>
  397. string(27) "PHP: Hypertext Preprocessor"
  398. [1000]=>
  399. string(4) "test"
  400. [1001]=>
  401. string(6) "monkey"
  402. [16777216]=>
  403. float(-0.3333333333333333)
  404. }
  405. Using SORT_NUMERIC:
  406. array(8) {
  407. [-1000]=>
  408. array(2) {
  409. [0]=>
  410. string(6) "banana"
  411. [1]=>
  412. string(6) "orange"
  413. }
  414. [0]=>
  415. string(3) "PHP"
  416. ["test"]=>
  417. int(27)
  418. [5]=>
  419. string(4) "Test"
  420. [17]=>
  421. string(27) "PHP: Hypertext Preprocessor"
  422. [1000]=>
  423. string(4) "test"
  424. [1001]=>
  425. string(6) "monkey"
  426. [16777216]=>
  427. float(-0.3333333333333333)
  428. }
  429. Using SORT_STRING
  430. array(8) {
  431. [-1000]=>
  432. array(2) {
  433. [0]=>
  434. string(6) "banana"
  435. [1]=>
  436. string(6) "orange"
  437. }
  438. [0]=>
  439. string(3) "PHP"
  440. [1000]=>
  441. string(4) "test"
  442. [1001]=>
  443. string(6) "monkey"
  444. [16777216]=>
  445. float(-0.3333333333333333)
  446. [17]=>
  447. string(27) "PHP: Hypertext Preprocessor"
  448. [5]=>
  449. string(4) "Test"
  450. ["test"]=>
  451. int(27)
  452. }
  453. -- Testing rsort() --
  454. No second argument:
  455. array(8) {
  456. [0]=>
  457. array(2) {
  458. [0]=>
  459. string(6) "banana"
  460. [1]=>
  461. string(6) "orange"
  462. }
  463. [1]=>
  464. string(4) "test"
  465. [2]=>
  466. string(6) "monkey"
  467. [3]=>
  468. string(4) "Test"
  469. [4]=>
  470. string(27) "PHP: Hypertext Preprocessor"
  471. [5]=>
  472. string(3) "PHP"
  473. [6]=>
  474. int(27)
  475. [7]=>
  476. float(-0.3333333333333333)
  477. }
  478. Using SORT_REGULAR:
  479. array(8) {
  480. [0]=>
  481. array(2) {
  482. [0]=>
  483. string(6) "banana"
  484. [1]=>
  485. string(6) "orange"
  486. }
  487. [1]=>
  488. string(4) "test"
  489. [2]=>
  490. string(6) "monkey"
  491. [3]=>
  492. string(4) "Test"
  493. [4]=>
  494. string(27) "PHP: Hypertext Preprocessor"
  495. [5]=>
  496. string(3) "PHP"
  497. [6]=>
  498. int(27)
  499. [7]=>
  500. float(-0.3333333333333333)
  501. }
  502. Using SORT_NUMERIC:
  503. array(8) {
  504. [0]=>
  505. int(27)
  506. [1]=>
  507. array(2) {
  508. [0]=>
  509. string(6) "banana"
  510. [1]=>
  511. string(6) "orange"
  512. }
  513. [2]=>
  514. string(4) "test"
  515. [3]=>
  516. string(6) "monkey"
  517. [4]=>
  518. string(4) "Test"
  519. [5]=>
  520. string(27) "PHP: Hypertext Preprocessor"
  521. [6]=>
  522. string(3) "PHP"
  523. [7]=>
  524. float(-0.3333333333333333)
  525. }
  526. Using SORT_STRING
  527. Warning: Array to string conversion in %s on line %d
  528. Warning: Array to string conversion in %s on line %d
  529. Warning: Array to string conversion in %s on line %d
  530. Warning: Array to string conversion in %s on line %d
  531. Warning: Array to string conversion in %s on line %d
  532. Warning: Array to string conversion in %s on line %d
  533. array(8) {
  534. [0]=>
  535. string(4) "test"
  536. [1]=>
  537. string(6) "monkey"
  538. [2]=>
  539. string(4) "Test"
  540. [3]=>
  541. string(27) "PHP: Hypertext Preprocessor"
  542. [4]=>
  543. string(3) "PHP"
  544. [5]=>
  545. array(2) {
  546. [0]=>
  547. string(6) "banana"
  548. [1]=>
  549. string(6) "orange"
  550. }
  551. [6]=>
  552. int(27)
  553. [7]=>
  554. float(-0.3333333333333333)
  555. }
  556. -- Testing sort() --
  557. No second argument:
  558. array(8) {
  559. [0]=>
  560. float(-0.3333333333333333)
  561. [1]=>
  562. int(27)
  563. [2]=>
  564. string(3) "PHP"
  565. [3]=>
  566. string(27) "PHP: Hypertext Preprocessor"
  567. [4]=>
  568. string(4) "Test"
  569. [5]=>
  570. string(6) "monkey"
  571. [6]=>
  572. string(4) "test"
  573. [7]=>
  574. array(2) {
  575. [0]=>
  576. string(6) "banana"
  577. [1]=>
  578. string(6) "orange"
  579. }
  580. }
  581. Using SORT_REGULAR:
  582. array(8) {
  583. [0]=>
  584. float(-0.3333333333333333)
  585. [1]=>
  586. int(27)
  587. [2]=>
  588. string(3) "PHP"
  589. [3]=>
  590. string(27) "PHP: Hypertext Preprocessor"
  591. [4]=>
  592. string(4) "Test"
  593. [5]=>
  594. string(6) "monkey"
  595. [6]=>
  596. string(4) "test"
  597. [7]=>
  598. array(2) {
  599. [0]=>
  600. string(6) "banana"
  601. [1]=>
  602. string(6) "orange"
  603. }
  604. }
  605. Using SORT_NUMERIC:
  606. array(8) {
  607. [0]=>
  608. float(-0.3333333333333333)
  609. [1]=>
  610. string(3) "PHP"
  611. [2]=>
  612. string(27) "PHP: Hypertext Preprocessor"
  613. [3]=>
  614. string(4) "Test"
  615. [4]=>
  616. string(6) "monkey"
  617. [5]=>
  618. string(4) "test"
  619. [6]=>
  620. array(2) {
  621. [0]=>
  622. string(6) "banana"
  623. [1]=>
  624. string(6) "orange"
  625. }
  626. [7]=>
  627. int(27)
  628. }
  629. Using SORT_STRING
  630. Warning: Array to string conversion in %s on line %d
  631. Warning: Array to string conversion in %s on line %d
  632. Warning: Array to string conversion in %s on line %d
  633. Warning: Array to string conversion in %s on line %d
  634. Warning: Array to string conversion in %s on line %d
  635. array(8) {
  636. [0]=>
  637. float(-0.3333333333333333)
  638. [1]=>
  639. int(27)
  640. [2]=>
  641. array(2) {
  642. [0]=>
  643. string(6) "banana"
  644. [1]=>
  645. string(6) "orange"
  646. }
  647. [3]=>
  648. string(3) "PHP"
  649. [4]=>
  650. string(27) "PHP: Hypertext Preprocessor"
  651. [5]=>
  652. string(4) "Test"
  653. [6]=>
  654. string(6) "monkey"
  655. [7]=>
  656. string(4) "test"
  657. }