Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中对csv文件中的数据进行排序和组织_Php_Arrays_Csv_Foreach - Fatal编程技术网

如何在php中对csv文件中的数据进行排序和组织

如何在php中对csv文件中的数据进行排序和组织,php,arrays,csv,foreach,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

我有一个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);

}

像这样的东西应该适合你。这是未经测试的

如果$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
        }
    }

}
//简单冒泡排序
//按日期排序ASC
$changed=true;
而($已更改){
$changed=false;
对于($n=0;$nstrotime($csv[n+1][21])){
//交换!
$tmp=$csv[n];
$csv[n+1]=$csv[n];
$csv[n]=$tmp;
$changed=true;
//我们可以在这里加一个“休息”
}
}
}
编辑
好吧,现在你更新了你的问题,我的答案不再适合你的问题。我仍然会把它放在这里,以便其他搜索关键字。

类似的内容应该适合您。这是未经测试的

$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
如果$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
        }
    }

}
//简单冒泡排序
//按日期排序ASC
$changed=true;
而($已更改){
$changed=false;
对于($n=0;$nstrotime($csv[n+1][21])){
//交换!
$tmp=$csv[n];
$csv[n+1]=$csv[n];
$csv[n]=$tmp;
$changed=true;
//我们可以在这里加一个“休息”
}
}
}
编辑 好吧,现在你更新了你的问题,我的答案不再适合你的问题。我仍然会把它留在这里,用关键字进行其他搜索。

$howlong=array(“0-30天”=>0,“31-60天”=>0,“61-90天”=>0,“91天”=>0);
$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
foreach($csv作为$car){ ... $numberDays=intval($numberDays);//代码的最后一行 如果($numberDays
$howlong=array(“0-30天”=>0,“31-60天”=>0,“61-90天”=>0,“91天以上”=>0);
foreach($csv作为$car){
...
$numberDays=intval($numberDays);//代码的最后一行

如果($numberdaysys$csv是一个数组,对不起,我会更新这个问题好的,你能举一个csv的小例子吗?只需3行代码就足够了:)抱歉,不确定您的要求是什么,您想查看csv文件结构吗?是的$csv是一个数组抱歉,我将更新问题好的,您能举一个csv的小例子吗?仅3行就足以测试我的代码:)抱歉,不确定您的要求是什么,您想查看csv文件结构吗?+1提供了一个简单的解决方案;我将计数器定义为数组,并将对象推入其中,以进一步利用此“排序”更简单。+1给出了一个简单的解决方案;我将计数器定义为数组,并将对象推入其中,以便更容易地进一步使用这种“排序”。