常数数组的索引

时间:2015-10-21 20:57:23

标签: php arrays

我怀疑,有字符串格式的日期,以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 )
*/

2 个答案:

答案 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');