PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何从文件排序数组(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,请注明来意。
标签: