1--TEST--
2Test natcasesort() function : usage variations - mixed array
3--FILE--
4<?php
5/* Prototype  : bool natcasesort(array &$array_arg)
6 * Description: Sort an array using case-insensitive natural sort
7 * Source code: ext/standard/array.c
8 */
9
10/*
11 * Pass an array containing sub-arrays, ints, floats, strings, boolean, null
12 * and escape characters to test how natcasesort() re-orders it
13 */
14
15echo "*** Testing natcasesort() : usage variation ***\n";
16
17$mixed_values = array (
18  array(),
19  array( array(33, -5, 6),
20         array(11),
21         array(22, -55),
22         array()
23       ),
24  -4, "4", 4.00, "b", "5", -2, -2.0, -2.98989, "-.9", "True", "",
25  NULL, "ab", "abcd", 0.0, -0, "abcd\x00abcd\x00abcd", '', true, false
26);
27// suppress errors as is generating a lot of "array to string" notices
28var_dump( @natcasesort($mixed_values) );
29
30var_dump($mixed_values);
31
32echo "Done";
33?>
34
35--EXPECTF--
36*** Testing natcasesort() : usage variation ***
37bool(true)
38array(22) {
39  [13]=>
40  NULL
41  [19]=>
42  string(0) ""
43  [21]=>
44  bool(false)
45  [12]=>
46  string(0) ""
47  [10]=>
48  string(3) "-.9"
49  [7]=>
50  int(-2)
51  [8]=>
52  float(-2)
53  [9]=>
54  float(-2.98989)
55  [2]=>
56  int(-4)
57  [16]=>
58  float(0)
59  [17]=>
60  int(0)
61  [20]=>
62  bool(true)
63  [3]=>
64  string(1) "4"
65  [4]=>
66  float(4)
67  [6]=>
68  string(1) "5"
69  [14]=>
70  string(2) "ab"
71  [15]=>
72  string(4) "abcd"
73  [18]=>
74  string(14) "%s"
75  [0]=>
76  array(0) {
77  }
78  [1]=>
79  array(4) {
80    [0]=>
81    array(3) {
82      [0]=>
83      int(33)
84      [1]=>
85      int(-5)
86      [2]=>
87      int(6)
88    }
89    [1]=>
90    array(1) {
91      [0]=>
92      int(11)
93    }
94    [2]=>
95    array(2) {
96      [0]=>
97      int(22)
98      [1]=>
99      int(-55)
100    }
101    [3]=>
102    array(0) {
103    }
104  }
105  [5]=>
106  string(1) "b"
107  [11]=>
108  string(4) "True"
109}
110Done