我怀疑,有字符串格式的日期,以php日期格式打开它,然后变成多维数组,但数组索引总是相同的,都在while,例如下面。
$string = "20102015";
$timezone = new DateTimeZone('UTC');
$dateTime = DateTime::createFromFormat('dmY', $string, $timezone);
$arr = array($dateTime->format('d/m/Y'));
print_r($arr);
/* Result:
Array ( [0] => 23/10/2015 )
Array ( [0] => 22/11/2015 )
Array ( [0] => 21/11/2015 )
Array ( [0] => 15/10/2015 )
Array ( [0] => 29/10/2015 )
*/
答案 0 :(得分:0)
$arr = array($dateTime->format('d/m/y));
会为$ arr分配一个新值,即不附加它。
如果您将其置于while循环中,则只需重复分配即可。
如果您尝试生成日期列表,请尝试:
$arr = [];
while(...) {
$string = "20102015"; // I assume something changes this in the loop
$timezone = new DateTimeZone('UTC');
$dateTime = DateTime::createFromFormat('dmY', $string, $timezone);
$arr[] = $dateTime->format('d/m/Y');
}
答案 1 :(得分:0)
这是因为你只获取一个字符串日期值并将其作为一个数组(它为你提供一个数字索引的数组,其中包含一个值,而不是一个多维数组)。
每次迭代都以相同的方式执行此操作。每次将字符串强制转换为单个成员数组时。每次数组中该字符串的索引都是0
。
如果您正在尝试构建每次迭代的所有值的数组,那么您可能会在此之后:
// assign value to next index in existing array
$arr[] = $dateTime->format('d/m/Y');