我遍历了大约40,000条记录,并在找到匹配项时打印车辆信息。一条记录至少有一个车辆,由7个元素组成。不过,它总共可能有多达16辆汽车。16辆车中的任何一辆都可能有一个不完整或空白的车辆识别号(这是最后一个元素),在这种情况下,我不想使用它。因此,我首先测试元素6、13、20、27,以确保有东西在那里,然后测试它不只是空格。
我是PHP新手,正如我的代码所示。我下面的方法是有效的,尽管它很长,很麻烦,而且似乎花费的时间比它应该花的时间要长得多。
数组可能如下所示:
[0] => VEHICLE1
[1] => 1995
[2] => FORD
[3] => XL
[4] => WHITE
[5] => MD
[6] => 1GNEK714XXXXXXX
[7] => VEHICLE2
[8] => 1999
[9] => FORD
[10] => F-150XLT (HAS THIRD DOOR ON PASSENGER SIDE)
[11] => TEAL (GREEN)
[12] => MD
[13] => 我的逻辑是:
-Test最后一个元素以确保有车辆ID号,如果是..
-Make确保车辆ID大于0。如果是..
-Left将车辆识别码和填充物对齐到20个字符,
-Print车辆信息(年份、制造商、型号、颜色)
// VEHICLE 1
if(isset($vehicle_info[1][6]) && strlen($vehicle_info[1][6])>0){
print str_pad($vehicle_info[1][6], 20).$vehicle_info[1][5]."#8";
print "$details {$vehicle_info[1][1]}
{$vehicle_info[1][2]} {$vehicle_info[1][3]} {$vehicle_info[1][4]} \r\n";}
// VEHICLE 2
if(isset($vehicle_info[1][13]) && strlen($vehicle_info[1][13])>0){
print str_pad($vehicle_info[1][13], 20).$vehicle_info[1][12]."#8";
print "$details {$vehicle_info[1][8]}}
{$vehicle_info[1][9]} {$vehicle_info[1][10]} {$vehicle_info[1][11]}\r\n"}
...and so on, 14 more times...任何帮助收紧/加速这一点的人都将不胜感激。我确信有一种方法可以用3行代码来完成,我只是还没有弄明白而已!
发布于 2015-07-14 03:42:22
如果每辆车的信息需要7项数组,请使用array_chunk并处理部件
$vehicles = array_chunk($vehicle_info[1], 7);
foreach ($vehicles as $vehicle) {
if(isset($vehicle[6]) && strlen($vehicle[6])>0){
print str_pad($vehicle[6], 20).$vehicle[5]."#8";
print "$details {$vehicle[1]}
{$vehicle[2]} {$vehicle[3]} {$vehicle[4]} \r\n";}
}https://stackoverflow.com/questions/31391806
复制相似问题