[英]Need a more elegant way to test and loop through array
找到匹配项后,我将遍历约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] =>
我的逻辑是这样的:
-测试最后一个元素,以确保有车辆ID号(如果是)。
-确保车辆ID大于0。如果是。
-左对齐VIN并填充20个字符,
-打印车辆信息(年份,品牌,型号,颜色)
// 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种方法可以做到这一点,但我还没有弄清楚!
如果有关每辆车的信息需要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";}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.