2015-11-08 84 views
-2

从来就得到了这样的问题:PHP排序一个数组

我inputfile中(* .TXT):

1234;855245;2015-11-02; 
1234;21364;2015-11-03; 
1234;85456;2015-11-04; 
1234;85245;2015-11-05; 
1234;815245;2015-11-05; 
1234;4524;2015-11-06; 
1234;452004;2015-11-06; 
1234;4524;2015-11-06; 
1234;15000;2015-11-07; 
1234;85259;2015-11-08; 
1234;58959;2015-11-08; 

我倒是想排序数组中的这个文件是这样的:

2015-11-04 : 85456 
2015-11-05 : 815245 
2015-11-06 : 452004 
2015-11-07 : 15000 
2015-11-08 : 85259 

说明如何排序:

  • 今天 - 4天前
  • 排序由最早日期(2015年11月4日至2015年11月8日)
  • 最大的指数[1]我的约会
  • 当今天我的输入文件isn't,然后查找在我的输入文件中的实际日期后的最后日期

我希望你明白,我的意思是,你可以帮助我。

btw。对不起,我非常糟糕的英语

+0

你想排序文件?或文件内的内容? – sandeepsure

+3

请解释您尝试过哪些解决方案以及失败的方法。 – jochen

+0

@AlexTartan我在这个问题中添加了我的解决方案,作为回答 – iSeven

回答

0

您可以分析您的文件是这样的:

$arr = Array(); 
$lines = explode('\n', file_get_contents("file.txt")); 
foreach($lines as $line){ 
    $columns = explode(';', $line); 
    while(empty($columns[count($columns) - 1])) array_shift($columns); 
    if(count($columns) > 0) array_push($arr, $columns); 
} 

比你有一个多维数组。你有一个文件每一行的条目。这些条目包含作为数组的行。

可以再往上自己处理这个数组:

  1. 检查各行其年龄和删除它,如果它太旧
  2. array_multisort排序阵列(见PHP手册)