常量数组的索引


indices of the constant array

我遵循疑问,有一个字符串格式的日期,在php日期格式中打开它,然后变成一个多维数组,但数组索引总是相同的,所有在同时,下面的例子。

$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 )
*/

$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');
}

这是因为您只接受单个字符串日期值并将其转换为数组(这将为您提供一个带有单个值的数字索引数组,而不是多维数组)。

您对每个迭代都以相同的方式执行此操作。每次将字符串强制转换为单个成员数组。该字符串在数组中的索引每次都为0

如果你试图建立一个数组的所有值从每次迭代后,你可能在这个:

// assign value to next index in existing array
$arr[] = $dateTime->format('d/m/Y');