002.phpt 11 KB

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