我正在使用PHP,我有一系列车辆,通常有很多年。我基本上想要折叠重复的条目(除了年份之外它是相同的品牌/型号/引擎)并将各个年份转换为一个范围。作为一个例子,它不是2001年,2002年,2003年的单独条目,而是崩溃成2001 - 2003年的单一条目。
所以,我想转换一下:
Acura CL 2.2L 1997
Acura CL 2.3L 1998
Acura CL 2.3L 1999
Acura CL 3.0L 1997
Acura CL 3.0L 1998
Acura CL 3.0L 1999
Acura CL 3.2L 2001
Acura CL 3.2L 2002
Acura CL 3.2L 2003
Acura Integra 1.6L 1986
Acura Integra 1.6L 1987
Acura Integra 1.6L 1988
Acura Integra 1.6L 1989
Acura Integra 1.7L 1992
Acura Integra 1.7L 1993
Acura Integra 1.8L 1990
Acura Integra 1.8L 1991
Acura Integra 1.8L 1992
Acura Integra 1.8L 1993
Acura Integra 1.8L 1994
Acura Integra 1.8L 1995
Acura Integra 1.8L 1996
Acura Integra 1.8L 1997
Acura Integra 1.8L 1998
Acura Integra 1.8L 2000
Acura Integra 1.8L 2001
到此:
Acura CL 2.2L 1997
Acura CL 2.3L 1998-1999
Acura CL 3.0L 1997-1999
Acura CL 3.2L 2001-2003
Acura Integra 1.6L 1986-1989
Acura Integra 1.7L 1992-1993
Acura Integra 1.8L 1990-1998
Acura Integra 1.8L 2000-2001
任何帮助都将非常感谢!非常感谢你!
答案 0 :(得分:0)
您可以迭代名称,获取年份,并将信息存储在地图中
<?
foreach($models as $model){
$type = substr($model, 0, -5);
$year = substr($model, -4);
if (!isset($results[$type])) {
$results[$type] = array('min'=> $year, 'max'=>$year);
} else {
$results[$type]['min']=min($results[$type]['min'], $year);
$results[$type]['max']=max($results[$type]['max'], $year);
}
}
foreach($results as $type=>$years){
if ($years['min']==$years['max']){
$years_string = $years['min'];
} else {
$years_string = $years['min'],'-',$years['max'];
}
echo $type,' ', $years_string, "\n";
}
?>
检查这个小提琴:http://codepad.org/kOe5pi1S