php排序算法实例分析

yipeiwu_com5年前PHP代码库

本文实例分析了php排序算法。分享给大家供大家参考,具体如下:

用PHP写排序,虽然PHP自动了很多排序方式,SQL语句也可以很快速的从数据库里有序的读出数据。但是不同的需求还有灵活

运用所学的PHP基础知识。

我想完成如下的效果

排序算法效果图

就是把一个数值中所以的数据按时间排序并且分行显示

<?php
  $array = $mysql->query_array($mysql->sql_select("user","userid,truename,year"," ")); //从数据库里面读出数据
  $year = array(); //设置空数组
  foreach($array as $value)
  {
    array_push($year,$value[2]); //把数据数组里面的时间数据入栈
  }
  $year = array_unique($year); //去除数组中重复的数据
  usort($year, "strnatcmp"); //将数组中的数据按自然数排序
  $num = count($year); //统计数据中数据的个数
 /*处理函数*/
 function isyear($value,$array)
 {
   $user = array(); //建立空数组
   foreach($array as $val)
   {
    if($val[2] == $value)
    {
     array_push($user,$val);
    }
   }
   return $user; //返回数组
 }
?>

上面字数处理函数。下面是显示部分代码

<?php
for($i=0;$i<$num;$i++)
{
echo "<div class='box_user'>";
echo "<div class='boxleft'>{$year[$i]}届</div>";
echo  "<div class='boxright'>";
$user = isyear($year[$i],$array);
foreach($user as $v)
{
echo "<span class={$v[0]}>{$v[1]}</span>";
}
echo "</div>";
echo "</div>";
}
?>

数据显示代码应该好理解,我这里就不一行一行写注释了。

这样我们就可以得到开始我们需要的效果。不要以为这样就完了。。这只是第一步的想法,把实际的问题抽象成代码。也不知道效果怎么样?

我们可以通过时间戳来计算页面加载数据耗时和用PHP自动函数。

<?php
  memory_get_usage();
?>

来计算代码在运行的所占的内存。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php排序算法总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《php正则表达式用法总结》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

PHP的Yii框架中创建视图和渲染视图的方法详解

视图是 MVC 模式中的一部分。 它是展示数据到终端用户的代码,在网页应用中,根据视图模板来创建视图,视图模板为PHP脚本文件, 主要包含HTML代码和展示类PHP代码,通过yii\we...

PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】

本文实例讲述了PHP操作MongoDB实现增删改查功能。分享给大家供大家参考,具体如下: MongoDB的PHP驱动提供了一些核心类来操作MongoDB,总的来说MongoDB命令行中有...

PHP操作Memcache实例介绍

PHP操作Memcache实例介绍

b/s: 基于浏览器和服务器架构 web程序 c/s: QQ SVN client客户端+ 服务器简单的基于文本行的协议: redis memcache 区别: 都是存储数据的,memc...

利用Laravel事件系统如何实现登录日志的记录详解

本文介绍的是利用Laravel事件系统实现登录日志记录的相关内容,分享出来给大家参考,下面来看看详细的介绍: 明确需求 记录一个登录日志,通常需要下列信息: 客户端Agent信息...

php中3des加密代码(完全与.net中的兼容)

复制代码 代码如下: <?php class Crypt3Des { private $key = ""; private $iv = ""; /** * 构造,传递二个已经进行b...