我有一个.txt
文件,用于存储表单中的所有信息。我希望有1个PHP显示从最早的日期到今天的日期状态。
这是我的txt格式的一些示例:
ID4494(tab(“\ t”))12/02/2008(tab(“\ t”))ANJAY
ID4496(tab(“\ t”))14/04/2009(tab(“\ t”))SONJA
ID4499(tab(“\ t”))19/03/2014(tab(“\ t”))BRIAN
这是我的php文件
$ myfilename =“../ idfile / digid.txt”;
if(file_exists($ myfilename)&& filesize($ myfilename)> 0){
$digArray = file($myfilename, FILE_IGNORE_NEW_LINES); sort($digArray); foreach($digArray as $dig) { $oneDigArray = explode("\t", $dig); echo "<p>$oneDigArray[0] - $oneDigArray[1] - $oneDigArray[2]</p>"; }
} else { echo“
没有数字身份证。
”; }
我尝试使用sort ($digArray[1]);
,因为日期是数组号。但它不会起作用。
有什么建议吗?
谢谢。
答案 0 :(得分:1)
您可以使用PHP的usort功能并提供您自己的比较功能。像这样:
function cmp($a, $b)
{
return ($a[1] > $b[1]) ? 1 : -1; // Ascending order
// OR
return ($a[1] < $b[1]) ? 1 : -1; // Descending order
}
usort($digArray, "cmp");
以上将按日期对数组进行排序。这是我做过的测试。
<强>测试强>
$digArray = array(
array(
"ID4496", "14/04/2009", "SONJA"
),
array(
"ID4499", "19/03/2014", "BRIAN"
),
array(
"ID4494", "12/02/2008", "ANJAY"
),
);
function cmp($a, $b)
{
return ($a[1] > $b[1]) ? 1 : -1; // Ascending order
}
usort($digArray, "cmp");
print_r($digArray);
<强>输出:强>
Array (
[0] => Array ( [0] => ID4494 [1] => 12/02/2008 [2] => ANJAY )
[1] => Array ( [0] => ID4496 [1] => 14/04/2009 [2] => SONJA )
[2] => Array ( [0] => ID4499 [1] => 19/03/2014 [2] => BRIAN )
)