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