在Foreach中使用关联数组常量

问题描述

我使用的是 PHP7 ,因此我使用define()将关联数组设置为常量,例如

define('CONSTANT_ARRAY',[
    'December 2019' => '2020-01-01','July 2019' => '2019-08-01',"May 2019" => "2019-06-01","February 2019" => "2019-03-01","July 2018" => "2018-08-01","November 2017" => "2017-12-01","October 2017" => "2017-11-01","August 2017" => "2017-09-01","July 2017" => "2017-08-01","June 2017" => "2017-07-01","May 2017" => "2017-06-01","April 2017" => "2017-05-01","march 2017" => "2017-04-01","February 2017" => "2017-03-01"
]);

我想获取此常量以在foreach循环中使用。

foreach (explode(',',CONSTANT_ARRAY) as $month => $actual_date) {
    // SOME CODE
} /* end foreach loop */

// SOME CODE TO FETCH AND disPLAY THE RESULTS

发现任何错误吗?

解决方法

您的常量是一个数组,因此您可以以重新映射的方式遍历它:

foreach (CONSTANT_ARRAY as $month => $actual_date) {
    // SOME CODE
} /* end foreach loop */

从PHP 5.6+开始,您不需要序列化/反序列化数组。