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中soap的用法实例

本文实例讲述了PHP中soap的用法,分享给大家供大家参考。具体用法分析如下: PHP 使用soap有两种方式。 一、用wsdl文件 服务器端: 复制代码 代码如下:<?p...

php function用法如何递归及return和echo区别

复制代码 代码如下: <?php //模拟sql数据 $array = array(0=>'apple',1=>'banana',2=>'cat',3=>'...

php unset全局变量运用问题的深入解析

PHP unset全局变量在实际使用中只能销毁局部变量,并不能实现全局变量的目的。下面我们就来具体解决这一问题。希望对大家有所帮助。PHP中语言中有些函数对于初学者来说在字面上是很难理解...

php的POSIX 函数以及进程测试的深入分析

php的POSIX 函数以及进程测试的深入分析

复制代码 代码如下:<?phpecho posix_getpid(); //8805sleep(10);?> 再用 #ps -ax 这个时候如果多开开个浏览器请求,就会发...

PHP setcookie() cannot modify header information 的解决方法

使用setcookie()函数时总是报以下错误: Warning: Cannot modify header information - headers already sent by....