]> granicus.if.org Git - php/commitdiff
Unicode support for range()
authorDmitry Stogov <dmitry@php.net>
Wed, 17 Aug 2005 15:12:03 +0000 (15:12 +0000)
committerDmitry Stogov <dmitry@php.net>
Wed, 17 Aug 2005 15:12:03 +0000 (15:12 +0000)
ext/standard/array.c
ext/standard/tests/array/range.phpt

index b51a07089003367f06187a05b6b9b74c53714f0b..0a07bd160ba327b8c972fd374f1795366308e7ef 100644 (file)
@@ -1631,6 +1631,23 @@ PHP_FUNCTION(array_fill)
 }
 /* }}} */
 
+static void u_add_next_index_stringl(zval *arg, char *str, uint length, int duplicate TSRMLS_DC)
+{
+       if (UG(unicode)) {
+               UErrorCode status = U_ZERO_ERROR;
+               UChar *u_str;
+               int32_t u_len;
+
+               zend_convert_to_unicode(ZEND_U_CONVERTER(UG(runtime_encoding_conv)), &u_str, &u_len, str, length, &status);
+               add_next_index_unicodel(arg, u_str, u_len, 0);
+               if (!duplicate) {
+                       efree(str);
+               }
+       } else {
+               add_next_index_stringl(arg, str, length, duplicate);
+       }
+}
+
 /* {{{ proto array range(mixed low, mixed high[, int step])
    Create an array containing the range of integers or characters from low to high (inclusive) */
 PHP_FUNCTION(range)
@@ -1644,7 +1661,9 @@ PHP_FUNCTION(range)
        }
 
        if (zstep) {
-               if (Z_TYPE_P(zstep) == IS_DOUBLE || (Z_TYPE_P(zstep) == IS_STRING && is_numeric_string(Z_STRVAL_P(zstep), Z_STRLEN_P(zstep), NULL, NULL, 0) == IS_DOUBLE)) {
+               if (Z_TYPE_P(zstep) == IS_DOUBLE || 
+                   (Z_TYPE_P(zstep) == IS_STRING && is_numeric_string(Z_STRVAL_P(zstep), Z_STRLEN_P(zstep), NULL, NULL, 0) == IS_DOUBLE) ||
+                   (Z_TYPE_P(zstep) == IS_UNICODE && is_numeric_unicode(Z_USTRVAL_P(zstep), Z_USTRLEN_P(zstep), NULL, NULL, 0) == IS_DOUBLE)) {
                        is_step_double = 1;
                }
 
@@ -1660,8 +1679,19 @@ PHP_FUNCTION(range)
        /* Initialize the return_value as an array. */
        array_init(return_value);
 
+       if (Z_TYPE_P(zlow) == IS_UNICODE) {
+               convert_to_string(zlow);
+       }
+       
+       if (Z_TYPE_P(zhigh) == IS_UNICODE) {
+               convert_to_string(zhigh);
+       }
+
        /* If the range is given as strings, generate an array of characters. */
-       if (Z_TYPE_P(zlow) == IS_STRING && Z_TYPE_P(zhigh) == IS_STRING && Z_STRLEN_P(zlow) >= 1 && Z_STRLEN_P(zhigh) >= 1) {
+       if (Z_TYPE_P(zlow) == IS_STRING && 
+           Z_TYPE_P(zhigh) == IS_STRING && 
+           Z_STRLEN_P(zlow) >= 1 && 
+           Z_STRLEN_P(zhigh) >= 1) {
                int type1, type2;
                unsigned char *low, *high;
                long lstep = (long) step;
@@ -1675,8 +1705,6 @@ PHP_FUNCTION(range)
                        goto long_str;
                }
                
-               convert_to_string(zlow);
-               convert_to_string(zhigh);
                low = (unsigned char *)Z_STRVAL_P(zlow);
                high = (unsigned char *)Z_STRVAL_P(zhigh);
 
@@ -1686,7 +1714,7 @@ PHP_FUNCTION(range)
                                goto err;
                        }
                        for (; *low >= *high; (*low) -= (unsigned int)lstep) {
-                               add_next_index_stringl(return_value, low, 1, 1);
+                               u_add_next_index_stringl(return_value, low, 1, 1 TSRMLS_CC);
                                if (((signed int)*low - lstep) < 0) {
                                        break;
                                }
@@ -1697,13 +1725,13 @@ PHP_FUNCTION(range)
                                goto err;
                        }
                        for (; *low <= *high; (*low) += (unsigned int)lstep) {
-                               add_next_index_stringl(return_value, low, 1, 1);
+                               u_add_next_index_stringl(return_value, low, 1, 1 TSRMLS_CC);
                                if (((signed int)*low + lstep) > 255) {
                                        break;
                                }
                        }
                } else {
-                       add_next_index_stringl(return_value, low, 1, 1);
+                       u_add_next_index_stringl(return_value, low, 1, 1 TSRMLS_CC);
                }
 
        } else if (Z_TYPE_P(zlow) == IS_DOUBLE || Z_TYPE_P(zhigh) == IS_DOUBLE || is_step_double) {
index 23fb985f86250c7aae9f14238e61819188407851..049260c36d9ebd17307847945360101a341fc084 100644 (file)
@@ -1343,3 +1343,1320 @@ array(41) {
   [40]=>
   float(5)
 }
+--UEXPECT--
+array(100) {
+  [0]=>
+  int(1)
+  [1]=>
+  int(2)
+  [2]=>
+  int(3)
+  [3]=>
+  int(4)
+  [4]=>
+  int(5)
+  [5]=>
+  int(6)
+  [6]=>
+  int(7)
+  [7]=>
+  int(8)
+  [8]=>
+  int(9)
+  [9]=>
+  int(10)
+  [10]=>
+  int(11)
+  [11]=>
+  int(12)
+  [12]=>
+  int(13)
+  [13]=>
+  int(14)
+  [14]=>
+  int(15)
+  [15]=>
+  int(16)
+  [16]=>
+  int(17)
+  [17]=>
+  int(18)
+  [18]=>
+  int(19)
+  [19]=>
+  int(20)
+  [20]=>
+  int(21)
+  [21]=>
+  int(22)
+  [22]=>
+  int(23)
+  [23]=>
+  int(24)
+  [24]=>
+  int(25)
+  [25]=>
+  int(26)
+  [26]=>
+  int(27)
+  [27]=>
+  int(28)
+  [28]=>
+  int(29)
+  [29]=>
+  int(30)
+  [30]=>
+  int(31)
+  [31]=>
+  int(32)
+  [32]=>
+  int(33)
+  [33]=>
+  int(34)
+  [34]=>
+  int(35)
+  [35]=>
+  int(36)
+  [36]=>
+  int(37)
+  [37]=>
+  int(38)
+  [38]=>
+  int(39)
+  [39]=>
+  int(40)
+  [40]=>
+  int(41)
+  [41]=>
+  int(42)
+  [42]=>
+  int(43)
+  [43]=>
+  int(44)
+  [44]=>
+  int(45)
+  [45]=>
+  int(46)
+  [46]=>
+  int(47)
+  [47]=>
+  int(48)
+  [48]=>
+  int(49)
+  [49]=>
+  int(50)
+  [50]=>
+  int(51)
+  [51]=>
+  int(52)
+  [52]=>
+  int(53)
+  [53]=>
+  int(54)
+  [54]=>
+  int(55)
+  [55]=>
+  int(56)
+  [56]=>
+  int(57)
+  [57]=>
+  int(58)
+  [58]=>
+  int(59)
+  [59]=>
+  int(60)
+  [60]=>
+  int(61)
+  [61]=>
+  int(62)
+  [62]=>
+  int(63)
+  [63]=>
+  int(64)
+  [64]=>
+  int(65)
+  [65]=>
+  int(66)
+  [66]=>
+  int(67)
+  [67]=>
+  int(68)
+  [68]=>
+  int(69)
+  [69]=>
+  int(70)
+  [70]=>
+  int(71)
+  [71]=>
+  int(72)
+  [72]=>
+  int(73)
+  [73]=>
+  int(74)
+  [74]=>
+  int(75)
+  [75]=>
+  int(76)
+  [76]=>
+  int(77)
+  [77]=>
+  int(78)
+  [78]=>
+  int(79)
+  [79]=>
+  int(80)
+  [80]=>
+  int(81)
+  [81]=>
+  int(82)
+  [82]=>
+  int(83)
+  [83]=>
+  int(84)
+  [84]=>
+  int(85)
+  [85]=>
+  int(86)
+  [86]=>
+  int(87)
+  [87]=>
+  int(88)
+  [88]=>
+  int(89)
+  [89]=>
+  int(90)
+  [90]=>
+  int(91)
+  [91]=>
+  int(92)
+  [92]=>
+  int(93)
+  [93]=>
+  int(94)
+  [94]=>
+  int(95)
+  [95]=>
+  int(96)
+  [96]=>
+  int(97)
+  [97]=>
+  int(98)
+  [98]=>
+  int(99)
+  [99]=>
+  int(100)
+}
+array(100) {
+  [0]=>
+  int(100)
+  [1]=>
+  int(99)
+  [2]=>
+  int(98)
+  [3]=>
+  int(97)
+  [4]=>
+  int(96)
+  [5]=>
+  int(95)
+  [6]=>
+  int(94)
+  [7]=>
+  int(93)
+  [8]=>
+  int(92)
+  [9]=>
+  int(91)
+  [10]=>
+  int(90)
+  [11]=>
+  int(89)
+  [12]=>
+  int(88)
+  [13]=>
+  int(87)
+  [14]=>
+  int(86)
+  [15]=>
+  int(85)
+  [16]=>
+  int(84)
+  [17]=>
+  int(83)
+  [18]=>
+  int(82)
+  [19]=>
+  int(81)
+  [20]=>
+  int(80)
+  [21]=>
+  int(79)
+  [22]=>
+  int(78)
+  [23]=>
+  int(77)
+  [24]=>
+  int(76)
+  [25]=>
+  int(75)
+  [26]=>
+  int(74)
+  [27]=>
+  int(73)
+  [28]=>
+  int(72)
+  [29]=>
+  int(71)
+  [30]=>
+  int(70)
+  [31]=>
+  int(69)
+  [32]=>
+  int(68)
+  [33]=>
+  int(67)
+  [34]=>
+  int(66)
+  [35]=>
+  int(65)
+  [36]=>
+  int(64)
+  [37]=>
+  int(63)
+  [38]=>
+  int(62)
+  [39]=>
+  int(61)
+  [40]=>
+  int(60)
+  [41]=>
+  int(59)
+  [42]=>
+  int(58)
+  [43]=>
+  int(57)
+  [44]=>
+  int(56)
+  [45]=>
+  int(55)
+  [46]=>
+  int(54)
+  [47]=>
+  int(53)
+  [48]=>
+  int(52)
+  [49]=>
+  int(51)
+  [50]=>
+  int(50)
+  [51]=>
+  int(49)
+  [52]=>
+  int(48)
+  [53]=>
+  int(47)
+  [54]=>
+  int(46)
+  [55]=>
+  int(45)
+  [56]=>
+  int(44)
+  [57]=>
+  int(43)
+  [58]=>
+  int(42)
+  [59]=>
+  int(41)
+  [60]=>
+  int(40)
+  [61]=>
+  int(39)
+  [62]=>
+  int(38)
+  [63]=>
+  int(37)
+  [64]=>
+  int(36)
+  [65]=>
+  int(35)
+  [66]=>
+  int(34)
+  [67]=>
+  int(33)
+  [68]=>
+  int(32)
+  [69]=>
+  int(31)
+  [70]=>
+  int(30)
+  [71]=>
+  int(29)
+  [72]=>
+  int(28)
+  [73]=>
+  int(27)
+  [74]=>
+  int(26)
+  [75]=>
+  int(25)
+  [76]=>
+  int(24)
+  [77]=>
+  int(23)
+  [78]=>
+  int(22)
+  [79]=>
+  int(21)
+  [80]=>
+  int(20)
+  [81]=>
+  int(19)
+  [82]=>
+  int(18)
+  [83]=>
+  int(17)
+  [84]=>
+  int(16)
+  [85]=>
+  int(15)
+  [86]=>
+  int(14)
+  [87]=>
+  int(13)
+  [88]=>
+  int(12)
+  [89]=>
+  int(11)
+  [90]=>
+  int(10)
+  [91]=>
+  int(9)
+  [92]=>
+  int(8)
+  [93]=>
+  int(7)
+  [94]=>
+  int(6)
+  [95]=>
+  int(5)
+  [96]=>
+  int(4)
+  [97]=>
+  int(3)
+  [98]=>
+  int(2)
+  [99]=>
+  int(1)
+}
+array(100) {
+  [0]=>
+  int(1)
+  [1]=>
+  int(2)
+  [2]=>
+  int(3)
+  [3]=>
+  int(4)
+  [4]=>
+  int(5)
+  [5]=>
+  int(6)
+  [6]=>
+  int(7)
+  [7]=>
+  int(8)
+  [8]=>
+  int(9)
+  [9]=>
+  int(10)
+  [10]=>
+  int(11)
+  [11]=>
+  int(12)
+  [12]=>
+  int(13)
+  [13]=>
+  int(14)
+  [14]=>
+  int(15)
+  [15]=>
+  int(16)
+  [16]=>
+  int(17)
+  [17]=>
+  int(18)
+  [18]=>
+  int(19)
+  [19]=>
+  int(20)
+  [20]=>
+  int(21)
+  [21]=>
+  int(22)
+  [22]=>
+  int(23)
+  [23]=>
+  int(24)
+  [24]=>
+  int(25)
+  [25]=>
+  int(26)
+  [26]=>
+  int(27)
+  [27]=>
+  int(28)
+  [28]=>
+  int(29)
+  [29]=>
+  int(30)
+  [30]=>
+  int(31)
+  [31]=>
+  int(32)
+  [32]=>
+  int(33)
+  [33]=>
+  int(34)
+  [34]=>
+  int(35)
+  [35]=>
+  int(36)
+  [36]=>
+  int(37)
+  [37]=>
+  int(38)
+  [38]=>
+  int(39)
+  [39]=>
+  int(40)
+  [40]=>
+  int(41)
+  [41]=>
+  int(42)
+  [42]=>
+  int(43)
+  [43]=>
+  int(44)
+  [44]=>
+  int(45)
+  [45]=>
+  int(46)
+  [46]=>
+  int(47)
+  [47]=>
+  int(48)
+  [48]=>
+  int(49)
+  [49]=>
+  int(50)
+  [50]=>
+  int(51)
+  [51]=>
+  int(52)
+  [52]=>
+  int(53)
+  [53]=>
+  int(54)
+  [54]=>
+  int(55)
+  [55]=>
+  int(56)
+  [56]=>
+  int(57)
+  [57]=>
+  int(58)
+  [58]=>
+  int(59)
+  [59]=>
+  int(60)
+  [60]=>
+  int(61)
+  [61]=>
+  int(62)
+  [62]=>
+  int(63)
+  [63]=>
+  int(64)
+  [64]=>
+  int(65)
+  [65]=>
+  int(66)
+  [66]=>
+  int(67)
+  [67]=>
+  int(68)
+  [68]=>
+  int(69)
+  [69]=>
+  int(70)
+  [70]=>
+  int(71)
+  [71]=>
+  int(72)
+  [72]=>
+  int(73)
+  [73]=>
+  int(74)
+  [74]=>
+  int(75)
+  [75]=>
+  int(76)
+  [76]=>
+  int(77)
+  [77]=>
+  int(78)
+  [78]=>
+  int(79)
+  [79]=>
+  int(80)
+  [80]=>
+  int(81)
+  [81]=>
+  int(82)
+  [82]=>
+  int(83)
+  [83]=>
+  int(84)
+  [84]=>
+  int(85)
+  [85]=>
+  int(86)
+  [86]=>
+  int(87)
+  [87]=>
+  int(88)
+  [88]=>
+  int(89)
+  [89]=>
+  int(90)
+  [90]=>
+  int(91)
+  [91]=>
+  int(92)
+  [92]=>
+  int(93)
+  [93]=>
+  int(94)
+  [94]=>
+  int(95)
+  [95]=>
+  int(96)
+  [96]=>
+  int(97)
+  [97]=>
+  int(98)
+  [98]=>
+  int(99)
+  [99]=>
+  int(100)
+}
+array(100) {
+  [0]=>
+  int(100)
+  [1]=>
+  int(99)
+  [2]=>
+  int(98)
+  [3]=>
+  int(97)
+  [4]=>
+  int(96)
+  [5]=>
+  int(95)
+  [6]=>
+  int(94)
+  [7]=>
+  int(93)
+  [8]=>
+  int(92)
+  [9]=>
+  int(91)
+  [10]=>
+  int(90)
+  [11]=>
+  int(89)
+  [12]=>
+  int(88)
+  [13]=>
+  int(87)
+  [14]=>
+  int(86)
+  [15]=>
+  int(85)
+  [16]=>
+  int(84)
+  [17]=>
+  int(83)
+  [18]=>
+  int(82)
+  [19]=>
+  int(81)
+  [20]=>
+  int(80)
+  [21]=>
+  int(79)
+  [22]=>
+  int(78)
+  [23]=>
+  int(77)
+  [24]=>
+  int(76)
+  [25]=>
+  int(75)
+  [26]=>
+  int(74)
+  [27]=>
+  int(73)
+  [28]=>
+  int(72)
+  [29]=>
+  int(71)
+  [30]=>
+  int(70)
+  [31]=>
+  int(69)
+  [32]=>
+  int(68)
+  [33]=>
+  int(67)
+  [34]=>
+  int(66)
+  [35]=>
+  int(65)
+  [36]=>
+  int(64)
+  [37]=>
+  int(63)
+  [38]=>
+  int(62)
+  [39]=>
+  int(61)
+  [40]=>
+  int(60)
+  [41]=>
+  int(59)
+  [42]=>
+  int(58)
+  [43]=>
+  int(57)
+  [44]=>
+  int(56)
+  [45]=>
+  int(55)
+  [46]=>
+  int(54)
+  [47]=>
+  int(53)
+  [48]=>
+  int(52)
+  [49]=>
+  int(51)
+  [50]=>
+  int(50)
+  [51]=>
+  int(49)
+  [52]=>
+  int(48)
+  [53]=>
+  int(47)
+  [54]=>
+  int(46)
+  [55]=>
+  int(45)
+  [56]=>
+  int(44)
+  [57]=>
+  int(43)
+  [58]=>
+  int(42)
+  [59]=>
+  int(41)
+  [60]=>
+  int(40)
+  [61]=>
+  int(39)
+  [62]=>
+  int(38)
+  [63]=>
+  int(37)
+  [64]=>
+  int(36)
+  [65]=>
+  int(35)
+  [66]=>
+  int(34)
+  [67]=>
+  int(33)
+  [68]=>
+  int(32)
+  [69]=>
+  int(31)
+  [70]=>
+  int(30)
+  [71]=>
+  int(29)
+  [72]=>
+  int(28)
+  [73]=>
+  int(27)
+  [74]=>
+  int(26)
+  [75]=>
+  int(25)
+  [76]=>
+  int(24)
+  [77]=>
+  int(23)
+  [78]=>
+  int(22)
+  [79]=>
+  int(21)
+  [80]=>
+  int(20)
+  [81]=>
+  int(19)
+  [82]=>
+  int(18)
+  [83]=>
+  int(17)
+  [84]=>
+  int(16)
+  [85]=>
+  int(15)
+  [86]=>
+  int(14)
+  [87]=>
+  int(13)
+  [88]=>
+  int(12)
+  [89]=>
+  int(11)
+  [90]=>
+  int(10)
+  [91]=>
+  int(9)
+  [92]=>
+  int(8)
+  [93]=>
+  int(7)
+  [94]=>
+  int(6)
+  [95]=>
+  int(5)
+  [96]=>
+  int(4)
+  [97]=>
+  int(3)
+  [98]=>
+  int(2)
+  [99]=>
+  int(1)
+}
+array(26) {
+  [0]=>
+  unicode(1) "a"
+  [1]=>
+  unicode(1) "b"
+  [2]=>
+  unicode(1) "c"
+  [3]=>
+  unicode(1) "d"
+  [4]=>
+  unicode(1) "e"
+  [5]=>
+  unicode(1) "f"
+  [6]=>
+  unicode(1) "g"
+  [7]=>
+  unicode(1) "h"
+  [8]=>
+  unicode(1) "i"
+  [9]=>
+  unicode(1) "j"
+  [10]=>
+  unicode(1) "k"
+  [11]=>
+  unicode(1) "l"
+  [12]=>
+  unicode(1) "m"
+  [13]=>
+  unicode(1) "n"
+  [14]=>
+  unicode(1) "o"
+  [15]=>
+  unicode(1) "p"
+  [16]=>
+  unicode(1) "q"
+  [17]=>
+  unicode(1) "r"
+  [18]=>
+  unicode(1) "s"
+  [19]=>
+  unicode(1) "t"
+  [20]=>
+  unicode(1) "u"
+  [21]=>
+  unicode(1) "v"
+  [22]=>
+  unicode(1) "w"
+  [23]=>
+  unicode(1) "x"
+  [24]=>
+  unicode(1) "y"
+  [25]=>
+  unicode(1) "z"
+}
+array(26) {
+  [0]=>
+  unicode(1) "z"
+  [1]=>
+  unicode(1) "y"
+  [2]=>
+  unicode(1) "x"
+  [3]=>
+  unicode(1) "w"
+  [4]=>
+  unicode(1) "v"
+  [5]=>
+  unicode(1) "u"
+  [6]=>
+  unicode(1) "t"
+  [7]=>
+  unicode(1) "s"
+  [8]=>
+  unicode(1) "r"
+  [9]=>
+  unicode(1) "q"
+  [10]=>
+  unicode(1) "p"
+  [11]=>
+  unicode(1) "o"
+  [12]=>
+  unicode(1) "n"
+  [13]=>
+  unicode(1) "m"
+  [14]=>
+  unicode(1) "l"
+  [15]=>
+  unicode(1) "k"
+  [16]=>
+  unicode(1) "j"
+  [17]=>
+  unicode(1) "i"
+  [18]=>
+  unicode(1) "h"
+  [19]=>
+  unicode(1) "g"
+  [20]=>
+  unicode(1) "f"
+  [21]=>
+  unicode(1) "e"
+  [22]=>
+  unicode(1) "d"
+  [23]=>
+  unicode(1) "c"
+  [24]=>
+  unicode(1) "b"
+  [25]=>
+  unicode(1) "a"
+}
+array(1) {
+  [0]=>
+  unicode(1) "q"
+}
+array(1) {
+  [0]=>
+  int(5)
+}
+array(6) {
+  [0]=>
+  float(5.1)
+  [1]=>
+  float(6.1)
+  [2]=>
+  float(7.1)
+  [3]=>
+  float(8.1)
+  [4]=>
+  float(9.1)
+  [5]=>
+  float(10.1)
+}
+array(6) {
+  [0]=>
+  float(10.1)
+  [1]=>
+  float(9.1)
+  [2]=>
+  float(8.1)
+  [3]=>
+  float(7.1)
+  [4]=>
+  float(6.1)
+  [5]=>
+  float(5.1)
+}
+array(6) {
+  [0]=>
+  float(5.1)
+  [1]=>
+  float(6.1)
+  [2]=>
+  float(7.1)
+  [3]=>
+  float(8.1)
+  [4]=>
+  float(9.1)
+  [5]=>
+  float(10.1)
+}
+array(6) {
+  [0]=>
+  float(10.1)
+  [1]=>
+  float(9.1)
+  [2]=>
+  float(8.1)
+  [3]=>
+  float(7.1)
+  [4]=>
+  float(6.1)
+  [5]=>
+  float(5.1)
+}
+array(41) {
+  [0]=>
+  float(1)
+  [1]=>
+  float(1.1)
+  [2]=>
+  float(1.2)
+  [3]=>
+  float(1.3)
+  [4]=>
+  float(1.4)
+  [5]=>
+  float(1.5)
+  [6]=>
+  float(1.6)
+  [7]=>
+  float(1.7)
+  [8]=>
+  float(1.8)
+  [9]=>
+  float(1.9)
+  [10]=>
+  float(2)
+  [11]=>
+  float(2.1)
+  [12]=>
+  float(2.2)
+  [13]=>
+  float(2.3)
+  [14]=>
+  float(2.4)
+  [15]=>
+  float(2.5)
+  [16]=>
+  float(2.6)
+  [17]=>
+  float(2.7)
+  [18]=>
+  float(2.8)
+  [19]=>
+  float(2.9)
+  [20]=>
+  float(3)
+  [21]=>
+  float(3.1)
+  [22]=>
+  float(3.2)
+  [23]=>
+  float(3.3)
+  [24]=>
+  float(3.4)
+  [25]=>
+  float(3.5)
+  [26]=>
+  float(3.6)
+  [27]=>
+  float(3.7)
+  [28]=>
+  float(3.8)
+  [29]=>
+  float(3.9)
+  [30]=>
+  float(4)
+  [31]=>
+  float(4.1)
+  [32]=>
+  float(4.2)
+  [33]=>
+  float(4.3)
+  [34]=>
+  float(4.4)
+  [35]=>
+  float(4.5)
+  [36]=>
+  float(4.6)
+  [37]=>
+  float(4.7)
+  [38]=>
+  float(4.8)
+  [39]=>
+  float(4.9)
+  [40]=>
+  float(5)
+}
+array(41) {
+  [0]=>
+  float(5)
+  [1]=>
+  float(4.9)
+  [2]=>
+  float(4.8)
+  [3]=>
+  float(4.7)
+  [4]=>
+  float(4.6)
+  [5]=>
+  float(4.5)
+  [6]=>
+  float(4.4)
+  [7]=>
+  float(4.3)
+  [8]=>
+  float(4.2)
+  [9]=>
+  float(4.1)
+  [10]=>
+  float(4)
+  [11]=>
+  float(3.9)
+  [12]=>
+  float(3.8)
+  [13]=>
+  float(3.7)
+  [14]=>
+  float(3.6)
+  [15]=>
+  float(3.5)
+  [16]=>
+  float(3.4)
+  [17]=>
+  float(3.3)
+  [18]=>
+  float(3.2)
+  [19]=>
+  float(3.1)
+  [20]=>
+  float(3)
+  [21]=>
+  float(2.9)
+  [22]=>
+  float(2.8)
+  [23]=>
+  float(2.7)
+  [24]=>
+  float(2.6)
+  [25]=>
+  float(2.5)
+  [26]=>
+  float(2.4)
+  [27]=>
+  float(2.3)
+  [28]=>
+  float(2.2)
+  [29]=>
+  float(2.1)
+  [30]=>
+  float(2)
+  [31]=>
+  float(1.9)
+  [32]=>
+  float(1.8)
+  [33]=>
+  float(1.7)
+  [34]=>
+  float(1.6)
+  [35]=>
+  float(1.5)
+  [36]=>
+  float(1.4)
+  [37]=>
+  float(1.3)
+  [38]=>
+  float(1.2)
+  [39]=>
+  float(1.1)
+  [40]=>
+  float(1)
+}
+array(41) {
+  [0]=>
+  float(1)
+  [1]=>
+  float(1.1)
+  [2]=>
+  float(1.2)
+  [3]=>
+  float(1.3)
+  [4]=>
+  float(1.4)
+  [5]=>
+  float(1.5)
+  [6]=>
+  float(1.6)
+  [7]=>
+  float(1.7)
+  [8]=>
+  float(1.8)
+  [9]=>
+  float(1.9)
+  [10]=>
+  float(2)
+  [11]=>
+  float(2.1)
+  [12]=>
+  float(2.2)
+  [13]=>
+  float(2.3)
+  [14]=>
+  float(2.4)
+  [15]=>
+  float(2.5)
+  [16]=>
+  float(2.6)
+  [17]=>
+  float(2.7)
+  [18]=>
+  float(2.8)
+  [19]=>
+  float(2.9)
+  [20]=>
+  float(3)
+  [21]=>
+  float(3.1)
+  [22]=>
+  float(3.2)
+  [23]=>
+  float(3.3)
+  [24]=>
+  float(3.4)
+  [25]=>
+  float(3.5)
+  [26]=>
+  float(3.6)
+  [27]=>
+  float(3.7)
+  [28]=>
+  float(3.8)
+  [29]=>
+  float(3.9)
+  [30]=>
+  float(4)
+  [31]=>
+  float(4.1)
+  [32]=>
+  float(4.2)
+  [33]=>
+  float(4.3)
+  [34]=>
+  float(4.4)
+  [35]=>
+  float(4.5)
+  [36]=>
+  float(4.6)
+  [37]=>
+  float(4.7)
+  [38]=>
+  float(4.8)
+  [39]=>
+  float(4.9)
+  [40]=>
+  float(5)
+}
+array(41) {
+  [0]=>
+  float(1)
+  [1]=>
+  float(1.1)
+  [2]=>
+  float(1.2)
+  [3]=>
+  float(1.3)
+  [4]=>
+  float(1.4)
+  [5]=>
+  float(1.5)
+  [6]=>
+  float(1.6)
+  [7]=>
+  float(1.7)
+  [8]=>
+  float(1.8)
+  [9]=>
+  float(1.9)
+  [10]=>
+  float(2)
+  [11]=>
+  float(2.1)
+  [12]=>
+  float(2.2)
+  [13]=>
+  float(2.3)
+  [14]=>
+  float(2.4)
+  [15]=>
+  float(2.5)
+  [16]=>
+  float(2.6)
+  [17]=>
+  float(2.7)
+  [18]=>
+  float(2.8)
+  [19]=>
+  float(2.9)
+  [20]=>
+  float(3)
+  [21]=>
+  float(3.1)
+  [22]=>
+  float(3.2)
+  [23]=>
+  float(3.3)
+  [24]=>
+  float(3.4)
+  [25]=>
+  float(3.5)
+  [26]=>
+  float(3.6)
+  [27]=>
+  float(3.7)
+  [28]=>
+  float(3.8)
+  [29]=>
+  float(3.9)
+  [30]=>
+  float(4)
+  [31]=>
+  float(4.1)
+  [32]=>
+  float(4.2)
+  [33]=>
+  float(4.3)
+  [34]=>
+  float(4.4)
+  [35]=>
+  float(4.5)
+  [36]=>
+  float(4.6)
+  [37]=>
+  float(4.7)
+  [38]=>
+  float(4.8)
+  [39]=>
+  float(4.9)
+  [40]=>
+  float(5)
+}