标题:
怎样将一个数组按照每一行的第三个“|”后的数字的大小进行排列?
[打印本页]
作者:
ghmc
时间:
2006-4-25 13:48
标题:
怎样将一个数组按照每一行的第三个“|”后的数字的大小进行排列?
该数组结构为:
aa ¦aad ¦123 ¦afas
aa ¦aad ¦13 ¦afas
aa ¦aad ¦23 ¦afas
aa ¦aad ¦12 ¦afas
aa ¦aad ¦1 ¦afas
aa ¦aad ¦2 ¦afas
……
作者:
诡异
时间:
2006-4-25 13:49
<?php
$ar = array(
"aa ¦aad ¦123 ¦afas",
"aa ¦aad ¦13 ¦afas",
"aa ¦aad ¦23 ¦afas",
"aa ¦aad ¦12 ¦afas",
"aa ¦aad ¦1 ¦afas",
"aa ¦aad ¦2 ¦afas"
);
function cmd($a,$b) {
$a1 = explode(" ¦",$a);
$b1 = explode(" ¦",$b);
if($a1[2] == $b1[2])
return 0;
return ($a1[2]>$b1[2])?1:-1;
}
usort($ar,cmd);
?>
结果
Array
(
[0] => aa ¦aad ¦1 ¦afas
[1] => aa ¦aad ¦2 ¦afas
[2] => aa ¦aad ¦12 ¦afas
[3] => aa ¦aad ¦13 ¦afas
[4] => aa ¦aad ¦23 ¦afas
[5] => aa ¦aad ¦123 ¦afas
)
作者:
海阔天空
时间:
2006-4-25 13:49
回调函数改成:
function cmd($a,$b) {
$a1 = split("[ ¦,]",$a);
$b1 = split("[ ¦,]",$b);
if($a1[3] == $b1[3])
return 0;
return ($a1[2]>$b1[2])?1:-1;
}
至于排序后数组的变化是由usort函数决定的
欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/)
Powered by Discuz! 6.0.0