大佬教程收集整理的这篇文章主要介绍了如何从文件排序数组(PHP)?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我这里有一个文件,其中包含数据库名称及其相应大小的列表.
现在,我要从最大到最小排序大小,以及数据库名称
应该在显示时进行.在这里使用PHP.
谁能帮我吗?
$file_name = test.txt
$handle = @fopen($file_name, "r");
if ($handlE) {
while (!feof($handlE)) {
$buffer = @R_403_2189@s($handle, 4096);
$data = explode(" ",$buffer);
echo $data[1]."\n";
}
fclose($handlE);
}
Databasename 300 KB
注意:$data [1]包含大小.我应该将其放置在阵列上吗?数据库名称怎么样?
非常感谢您的回答. =)
解决方法:
首先,您需要构建一个具有可以实际排序的元素的数组,然后使用usort或类似的元素根据您的自定义条件执行排序.
//first build up an array of databases with a unified size in bytes, ensuring
//we account for those postfixes like KB,MB,and GB
$databases=array();
while (!feof($handlE)) {
$buffer = @R_403_2189@s($handle, 4096);
$data = explode(" ",$buffer);
if (count($data)==3)
{
$size=$data[1];
switch ($data[2])
{
case 'KB': $size*=1024; break;
case 'MB': $size*=1024*1024; break;
case 'GB': $size*=1024*1024*1024; break;
}
$data[3]=$size;
$databases[]=$data;
}
else
{
die("Bad line in file: $buffer");
}
}
现在使用自定义比较功能排序,以根据计算出的大小从高到低排序:
function cmp($a, $b)
{
if ($a[3] == $b[3]) {
return 0;
}
return ($a[3] < $b[3]) ? 1 : -1;
}
usort($databases, "cmp");
以上是大佬教程为你收集整理的如何从文件排序数组(PHP)?全部内容,希望文章能够帮你解决如何从文件排序数组(PHP)?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。