2

以下是我在一段 PHP 代码中使用的关联数组,它使用 SQL 数据库中的数据创建了一个有组织的性能日期和信息表。该代码似乎没有问题(对我而言),但在网页加载时行为不正确(某些日期未出现)。

$months = array(
    01 => 'January',
    02 => 'February',
    03 => 'March',
    04 => 'April',
    05 => 'May',
    06 => 'June',
    07 => 'July',
    08 => 'August',
    09 => 'September',
    10 => 'October',
    11 => 'November',
    12 => 'December',
);

当我运行“var_dump”时,输出如下:

array(11) {
    [1]=> string(7) "January" 
    [2]=> string(8) "February" 
    [3]=> string(5) "March" 
    [4]=> string(5) "April" 
    [5]=> string(3) "May" 
    [6]=> string(4) "June" 
    [7]=> string(4) "July" 
    [0]=> string(9) "September" 
    [10]=> string(7) "October" 
    [11]=> string(8) "November" 
    [12]=> string(8) "December" }

'August' 的整行缺失,'September' 的键现在是 [0]。

谁能解释我的代码中的错误在哪里?

免责声明:我通过从前九个键中删除前导零解决了这个问题,但我对它为什么重要感到困惑?提前感谢您的任何解释。

4

1 回答 1

2

08 和 09 是无效的八进制文字......所以你需要做的是:

  1. 将您的键命名为正确的整数(不带 0 前缀)
  2. 或者,将您的键用作字符串,就像您提到的“关联数组”一样,您的数组应该是这样的:
<?php
$months = array(
    "01" => 'January',
    "02" => 'February',
    "03" => 'March',
    "04" => 'April',
    "05" => 'May',
    "06" => 'June',
    "07" => 'July',
    "08" => 'August',
    "09" => 'September',
    "10" => 'October',
    "11" => 'November',
    "12" => 'December',
);

抱歉想评论但不能评论,新用户在这里

于 2018-05-12T00:44:09.080 回答