array: 建立一个新的阵列。
array_walk: 让使用者自订函数能处理阵列中的每一个元素。
arsort: 将阵列的值由大到小排序。
asort: 将阵列的值由小到大排序。
count: 计算变数或阵列中的元素个数。
current: 传回阵列中目前的元素。
each: 传回阵列中下一个元素的索引及值。
end: 将阵列的内部指标指到最后的元素。
key: 取得阵列中的索引资料。
ksort: 将阵列的元素依索引排序。
list: 列出阵列中元素的值。
next: 将阵列的内部指标向后移动。
pos: 传回阵列目前的元素。
prev: 将阵列的内部指标往前移动。
range: 建立一个整数范围的阵列。
reset: 将阵列的指标指到阵列第一个元素。
rsort: 将阵列的值由大到小排序。
shuffle: 将阵列的顺序弄混。
sizeof: 获知阵列的大小。
sort: 将阵列排序。
uasort: 将阵列依使用者自定的函式排序。
uksort: 将阵列的索引依使用者自定的函式排序。
usort: 将阵列的值依使用者自定的函式排序。
array_walk: 让使用者自订函数能处理阵列中的每一个元素。
arsort: 将阵列的值由大到小排序。
asort: 将阵列的值由小到大排序。
count: 计算变数或阵列中的元素个数。
current: 传回阵列中目前的元素。
each: 传回阵列中下一个元素的索引及值。
end: 将阵列的内部指标指到最后的元素。
key: 取得阵列中的索引资料。
ksort: 将阵列的元素依索引排序。
list: 列出阵列中元素的值。
next: 将阵列的内部指标向后移动。
pos: 传回阵列目前的元素。
prev: 将阵列的内部指标往前移动。
range: 建立一个整数范围的阵列。
reset: 将阵列的指标指到阵列第一个元素。
rsort: 将阵列的值由大到小排序。
shuffle: 将阵列的顺序弄混。
sizeof: 获知阵列的大小。
sort: 将阵列排序。
uasort: 将阵列依使用者自定的函式排序。
uksort: 将阵列的索引依使用者自定的函式排序。
usort: 将阵列的值依使用者自定的函式排序。
$ar[0] = array(
0 => 1,
fid => 1,
1 => 1,
id => 1,
2 => 1,
tid => 1,
3 => "sdfgdsfg",
title => "sdfgdsfg",
5 => "",
content => "",
6 => "",
username => "",
7 => 2342134 ,
post_time => 2342134 ,
8 => 0,
read_count => 0
);
$ar[1] = array(
0 => 1,
fid => 1,
1 => 3,
id => 3,
2 => 1,
tid => 1,
3 => "sadf",
title => "sadf",
5 => "asdfasd",
content => "asdfasd",
6 => "",
username => "",
7 => 111341234,
post_time => 111341234,
8 => 0,
read_count => 0
);/** 排序键
*/
$cmp_key = "post_time";/** 排序用工作函数(降序 由usort()调用)
*/
function _cmp_desc($a,$b) {
global $cmp_key;
if ($a[$cmp_key] == $b[$cmp_key]) return 0;
return ($a[$cmp_key] > $b[$cmp_key]) ? -1 : 1;
}/** 排序用工作函数(升序 由usort()调用)
*/
function _cmp_asc($a,$b) {
global $cmp_key;
if ($a[$cmp_key] == $b[$cmp_key]) return 0;
return ($a[$cmp_key] > $b[$cmp_key]) ? 1 : -1;
}
print_r($ar);
usort($ar,"_cmp_desc");
print_r($ar);
?>
原数组
Array
(
[0] => Array
(
[0] => 1
[fid] => 1
[1] => 1
[id] => 1
[2] => 1
[tid] => 1
[3] => sdfgdsfg
[title] => sdfgdsfg
[5] =>
[content] =>
[6] =>
[username] =>
[7] => 2342134
[post_time] => 2342134
[8] => 0
[read_count] => 0
) [1] => Array
(
[0] => 1
[fid] => 1
[1] => 3
[id] => 3
[2] => 1
[tid] => 1
[3] => sadf
[title] => sadf
[5] => asdfasd
[content] => asdfasd
[6] =>
[username] =>
[7] => 111341234
[post_time] => 111341234
[8] => 0
[read_count] => 0
))
按降序post_time
Array
(
[0] => Array
(
[0] => 1
[fid] => 1
[1] => 3
[id] => 3
[2] => 1
[tid] => 1
[3] => sadf
[title] => sadf
[5] => asdfasd
[content] => asdfasd
[6] =>
[username] =>
[7] => 111341234
[post_time] => 111341234
[8] => 0
[read_count] => 0
) [1] => Array
(
[0] => 1
[fid] => 1
[1] => 1
[id] => 1
[2] => 1
[tid] => 1
[3] => sdfgdsfg
[title] => sdfgdsfg
[5] =>
[content] =>
[6] =>
[username] =>
[7] => 2342134
[post_time] => 2342134
[8] => 0
[read_count] => 0
))
对多个数组同时进行排序,或是对一个多维数组进行多个维的排序.
输入的数组被处理成表的列,按行来排序,有点类似于sql语句中的order by条件。
这个函数的参数不常见,但是很灵活。可是一个数组或是下面这几个标志。
SORT_ASC - 升序
SORT_DESC - 降序
SORT_REGULAR - 常规比较
SORT_NUMERIC - 数值比较
SORT_STRING - 字串比较
一个数组不可以同时给两种类型的排序标志(这个当然了)。每个数组后的标志只对此数组有效。缺省为 SORT_ASC 和 SORT_REGULAR 。
如果正常,返回true,否则返回false。
我并没有开发什么函数,只是给usort函数提供一个回调函数。