我如何从PHP中的csv文件中排序和组织数据

时间:2016-01-31 00:17:56

标签: php arrays csv foreach

我有一个带有我的车辆库存的csv文件,我想知道如何根据我有多长时间对该库存进行排序。

这是我想输出的内容 -

30辆0-30天的车

25辆汽车31-60天

10辆车60-90天

2辆车90天以上

我有一个名为$ numberDays的变量,它计算我拥有汽车的日子,并给我一个整数,如" 30"或者不管它是什么..

这是我的 - $ csv是数组

foreach($csv as $car){

//Calculate days in stock
$todaydate = date("m/d/Y");
$dis = $car[21]; //date stocked in
$startTimeStamp = strtotime($todaydate);
$endTimeStamp = strtotime($dis);
$timeDiff = abs($endTimeStamp - $startTimeStamp);
$numberDays = $timeDiff/86400; 
$numberDays = intval($numberDays);

}

2 个答案:

答案 0 :(得分:2)

$howlong = array("0-30days"=>0, "31-60days"=>0, "61-90days"=>0, "91+days"=>0);
foreach($csv as $car){
  ...
  $numberDays = intval($numberDays); //last line in your code
  if($numberDays<=30) $howlong["0-30days"]++;
  elseif($numberDays<=60) $howlong["31-60days"]++;
  elseif($numberDays<=90) $howlong["61-90days"]++;
  elseif($numberDays>90) $howlong["91+days"]++;
}

echo $howlong["0-30days"]." cars 0-30 days old";
echo $howlong["31-60days"]." cars 31-60 days old";
//etc

答案 1 :(得分:0)

类似的东西应该适合你。这是未经测试的!

如果$ csv [n] [21]是包含日期的字符串,它应该有效。

// Simple Bubble-Sort
// Sorting by Date ASC
$changed = true;
while ($changed) {
    $changed = false;


    for ($n = 0; $n < count($csv) - 1; $n++) {
        if (strtotime($csv[n][21]) > strtotime($csv[n + 1][21])) {
            // Swap!
            $tmp = $csv[n];
            $csv[n + 1] = $csv[n];
            $csv[n] = $tmp;

            $changed = true;
            // We could add a "break" here
        }
    }

}

修改

好的,现在你更新了你的问题,我的答案不再适合你的问题。我还会将其留在这里进行其他关键字搜索。