php对数组排序的简单实例

复制代码 代码如下:

<?php 
class='pingjiaF' frameborder='0' src='http://www.jb51.net' scrolling='no'> 
对数组排序 
usort() 函数使用用户自定义的函数对数组排序。 
*/ 

function cmp($a, $b) //用户自定义回调函数 

if($a==$b) //如果两个参数相等 

return 0; //返回0 

return($a>$b)?-1:1; //如果第1个参数大于第2个返回1,否则-1 

$a=array(3,2,5,6,1); //定义一个数组 
usort ($a,"cmp"); //使用自定义函数对数组排序 
foreach($a as $key=>$value) //循环输出排序后的键值对 

echo "$key:$valuen"; 

/*
注释:如果两个元素比较结果相同,则它们在排序后的数组中的顺序未经定义。到 php 4.0.6 之前,用户自定义函数将保留这些元素的原有顺序。但是由于在 4.1.0 中引进了新的排序算法,结果将不是这样了,因为对此没有一个有效的解决方案。

*/ 

//对数组键名排序 uksort(array,sorttype) 
function cmp($a, $b) //用户自定义回调函数 

if($a==$b) //如果两个参数相等 

return 0; //返回0 

return($a>$b)?-1:1; //如果第1个参数大于第2个返回1,否则-1 

$a=array(4=>"four",3 =>"three",20 =>"twenty",10=>"ten"); //定义一个数组 
uksort ($a,"cmp"); //使用自定义函数对数组键名排序 
foreach($a as $key=>$value) //循环输出排序后的键值对 
{ // www.jb51.net 
echo "$key:$valuen"; 
}/*
uksort() 函数使用用户自定义的比较函数按照键名对数组排序,并保持索引关系。

如果成功则返回 true,否则返回 false。

如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。

 
自定义函数应接受两个参数,该参数将被数组中的一对键名填充。比较函数在第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。

*/ 

 
/*
sort() 函数按升序对给定数组的值排序。

注释:本函数为数组中的单元赋予新的键名。原有的键名将被删除。

如果成功则返回 true,否则返回 false。

*/ 

$fruits=array("lemon","orange","banana","apple"); //定义一个数组 
sort($fruits); //对数组进行排序 
foreach($fruits as $key=>$val) //循环输出数组排序后的键值对 

echo "$key=$valn"; //输出键值对 

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

使用PHP强制下载PDF文件示例 - 2015-04-05 15:04:32

我们有时会遇到这样一种情况,当需要下载一个PDF文件时,如果不经处理会直接在浏览器里打开PDF文件,然后再需要通过另存为才能保存下载文件。本文将通过PHP来实现直接下载PDF文件。 实现原理:我们仅仅只需要修改页面HTTP头,把Content-Type设置为force-download,问题即可解决。 请看代码: 复制代码 代码如下: forceDownload("pdfdemo.pdf"); function forceDownload($filename) { if (false == file_exi
PHP中的CURL函数库(Client URL Library Function) curl_close — 关闭一个curl会话 curl_copy_handle — 拷贝一个curl连接资源的所有内容和参数 curl_errno — 返回一个包含当前会话错误信息的数字编号 curl_error — 返回一个包含当前会话错误信息的字符串 curl_exec — 执行一个curl会话 curl_getinfo — 获取一个curl连接资源句柄的信息 curl_init — 初始化一个curl会话 curl_
但是, 这样做, 就没办法做一些统计, 权限检查, 等等的工作. 于是, 很多时候, 我们采用让PHP来做转发, 为用户提供文件下载. 复制代码 代码如下: ?php $file = "/tmp/dummy.tar.gz"; header("Content-type: application/octet-stream"); header('Content-Disposition: attachment; filename="' . basename($file) . '"'); header("Conten

php调用KyotoTycoon简单实例 - 2015-04-05 15:04:23

本文实例讲述了php调用KyotoTycoon的方法。分享给大家供大家参考。具体如下: Kyoto Tycoon(简称KT)是Tokyo Tyrant 的作者Mikio Hirabayashi 的系列作品之一,KT 是一个数据库网络层服务,它提供一个插件机制,可以挂载几乎所有的数据库存储设备。 这里提供一个简单的应用实例: ?phprequire_once 'Net/KyotoTycoon.php';use Net\KyotoTycoon;$cacheManager = new KyotoTycoon(a

jQuery 源码分析笔记 - 2015-04-05 15:04:22

jQuery的宗旨是Write Less, Do More。它对JavaScript的开发风格侵入性不如YUI那么强,当然也不如Dojo和YUI如此庞大。它极大的简化了JavaScript的日常开发工作,主要是DOM元素的操作(从名字Query就可以看出)。另外一个主要工作就是每个前端开发者都需要面对的浏览器兼容性。jQuery兼容所有主流浏览器的大部分版本,从万恶的IE6开始直到Firefox,Chrome等现代浏览器。除了居于核心的一小部分代码之外,剩下的jQuery都是松散的函数,扩展性很强。http

php实现的ping端口函数实例 - 2015-04-05 14:04:42

本文实例讲述了php实现的ping端口函数。分享给大家供大家参考。 具体实现代码如下: 复制代码 代码如下: ?php /* * @author xujiajay * @date 2010-10-7 * @function 可以ping端口的php函数 * */ error_reporting(E_ERROR); header("content-Type: text/html; charset=utf-8"); set_time_limit(120); $host = isset($_POST['url'
本文实例讲述了php计划任务之ignore_user_abort函数实现方法。分享给大家供大家参考。具体分析如下: PHP 不会检测到用户是否已断开连接,直到尝试向客户机发送信息为止,简单地使用 echo 语句无法确保信息发送,参阅 flush() 函数,代码如下: 复制代码 代码如下: ?php ignore_user_abort(true); set_time_limit(0); while(1) { $fp = fopen('time_task.txt',"a+"); $str = date("Y-
作者Jani Hartikainen发表了一篇博文,文中将两者进行对比,列举了PHP优于Node.js的五大理由。一起来看下。 1. 容易托管 大多数Web托管服务器提供商能为PHP提供托管,而对于Node,你需要找一个更专业的托管服务提供商。通常情况下,需要通过shell访问来设置应用程序,并且大部分托管提供商不包含这些,即便是包含此功能的,其他的包要相对的廉价些。 2. PHP在服务器上安装更方便、简易 PHP可轻易的安装WAMP,LAMP或者MAMP,将代码部署到一个Web虚拟主机,只需要拖放文件,就
最近在处理后台数据时需要实现文件上传.考虑到对浏览器适配上采用Fine Uploader. Fine Uploader 采用ajax方式实现对文件上传.同时在浏览器中直接支持文件拖拽[对浏览器版本有要求类似IE版本必须是9或是更高的IE10].在不同浏览器中提供统一用户体验.该组件基本覆盖目前所有主流浏览器.同时没有任何第三方组件依赖.相当Clear.在服务器端已经覆盖支持了ASP.NET/ColdFusion/Java/Node.js/Perl/PHP/Python. 对上传细节类似限制文件大小,文件类
本文实例讲述了ThinkPHP中使用ajax接收json数据的方法。分享给大家供大家参考。具体分析如下: 这里通过ThinkPHP+jquery实现ajax,扩展了下,写了个查询,前台代码如下: 首先需要引入jquery.js,主要代码如下: 复制代码 代码如下: function ajax(id,pic){ //由于ThinkPHP不解析JavaScript里的ThinkPHP常量,所以需要先在这里定义。 var URL='/Index'; $.ajax({ url: URL+'/returnAjax