如何在php中组合连续的月份名称?
发布时间:2020-12-13 22:49:22 所属栏目:PHP教程 来源:网络整理
导读:我有一个像这样的数组: Array( [0] = Jan [1] = Feb [2] = Mar [3] = Apr [4] = May [5] = Jun [6] = Sep [7] = Oct [8] = Dec) 我需要将其转换为 Array( [0] = "Jan - Jun" [1] = "Sep - Oct" [2] = "Dec") 这几个月总是有序的,但由于阵列是动态的,我想不
我有一个像这样的数组:
Array ( [0] => Jan [1] => Feb [2] => Mar [3] => Apr [4] => May [5] => Jun [6] => Sep [7] => Oct [8] => Dec ) 我需要将其转换为 Array ( [0] => "Jan - Jun" [1] => "Sep - Oct" [2] => "Dec" ) 这几个月总是有序的,但由于阵列是动态的,我想不出一个有效的方法,除了将每个月转换为使用date_parse的数字,然后结合它周围的月份!但我真的很困惑如何做到这一点,任何想法? 解决方法
这样的事情怎么样:
function findConsecutiveMonths(array $input) { // Utility list of all months static $months = array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'); $chunks = array(); for ($i = 0; $i < 12; $i++) { // Wait until the $i-th month is contained in the array if (!in_array($months[$i],$input)) { continue; } // Find first consecutive month that is NOT contained in the array for ($j = $i + 1; $j < 12; $j++) { if (!in_array($months[$j],$input)) { break; } } // Chunk is from month $i to month $j - 1 $chunks[] = ($i == $j - 1) ? $months[$i] : $months[$i] .' - '. $months[$j - 1]; // We know that month $j is not contained in the array so we can set $i // to $j - the search for the next chunk is then continued with month // $j + 1 because $i is incremented after the following line $i = $j; } return $chunks; } 演示:http://codepad.viper-7.com/UfaNfH (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |