PHP二维数组排序
PHP本身是有一个多维数组排序的函数的。
bool
array_multisort
( array
$ar1
[, mixed
$arg
[, mixed
$...
[, array
$...
]]] )
下面是手册当中对于array_multisort函数的描述:
array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。
关联(string)键名保持不变,但数字键名会被重新索引。
输入数组被当成一个表的列并以行来排序――这类似于 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。
从手册中看到,PHP本身的多维排序,是按照第一个数组进行排序,并且调整后面的顺序。像这样的数组:
array( 'id' => array(1,3,2),
'data'=>array('a','c','b'))
只要按照id进行多维排序,就可以了。但是很多时候,我们构造出的数组是这样的:
array(
array('id'=>1,'data'=>'a'),
array('id'=>3,'data'=>'c'),
array('id'=>2,'data'=>'b')
);
数组的元素是按行排列的,需要按其中的一列进行排序。PHP好像也没提供类似矩阵转置的函数,所以不能直接使用array_multisort进行多维排序。不过只需要先把排序的列抽取出来,作为第一个参数传给array_multisort即可。
function multi_array_sort($multi_array,$sort_key,$sort=SORT_ASC){
if(is_array($multi_array)){
foreach ($multi_array as $row_array){
if(is_array($row_array)){
$key_array[] = $row_array[$sort_key];
}else{
return -1;
}
}
}else{
return -1;
}
array_multisort($key_array,$sort,$multi_array);
return $multi_array;
}
相关文档:
1.前面一篇文章详细介绍了如何在Windows下整合apache+mysql+php+tomcat,很简单,但是在Linux下就没这么容易了,需要手工的去写配置文件,网上的资料有很多,但是我根据他们的写法,一步一步的配置还是没能success!(可能是我个人的原因,不过,无论在Google还是baidu搜到的文章就那么几篇,这个转一下,那个转一下,最后都� ......
今天又突然发现了一个技巧,就是PHP可以传值给js,如何做呢?
原来PHP的原理是这样的:
PHP的所有应用程序都是通过WEB服务器(如IIS或Apache)和PHP引擎程序解释执行完成的,工作过程:
(1)当用户在浏览器地址中输入要访问的PHP页面文件名,然后回车就会触发这个PHP请求,并将请求传送化支持PHP的WEB服务器。
(2)WEB服务� ......
返回一个结果全世界都知道怎么处理,关键是返回多个结果集就不好办了,下面有一解决办法
存储过程代码
DELIMITER $$;
DROP PROCEDURE IF EXISTS `test`.`sp_test`$$
CREATE PROCEDURE `test`.`sp_test` ()
BEGIN
select * from `user`.`user` limit 0, 50;
select coun ......
今天在家里重新安装了一下PHP 当让也有Apache了。但是我遇到了一个问题,就是Apache服务无法开启,后果怎样我想很多人都是知道的,当时也没有多想,以为是自己安装的时候出现了失误就重新安装一遍,可是还是一样无法打开,然后我就在想是什么问题,端口号80.我查看了一下,发现没有错误啊,思考了很久,对网络以及防� ......
1,设计一个程序的流程
设计流程:
功能需要->页面设计->数据库设计->代码设计->调试发布.
开始程序->初始化->条件->结束;
2.heml表单标签的使用:
<form action = "" method = "get">
<input type="test" size=10 name="user"/>
<input type="test" size=10 name="title"& ......