首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

求写php英文排序,该如何解决

2013-07-01 
求写php英文排序如:aacbabcacaaaaa能排成:a,aaaa,abc,aca,acb也就是说a排前面,z是最后,第一个字母从a-z,第

求写php英文排序
如:
a
acb
abc
aca
aaaa


能排成:
a,aaaa,abc,aca,acb
也就是说a排前面,z是最后,第一个字母从a-z,第二个第三个都无限从a-z的顺序排列.
PHP 英文排序
[解决办法]
这个需求比较另类

$a = array(
  'a',
  'acb',
  'abc',
  'aca',
  'aaaa',
);

$m = max(array_map('strlen', $a));
foreach($a as $v) {
  $c = substr($v, -1);
  $t[] = str_pad($v, $m, $c);
}
array_multisort($t, $a);
print_r($a);
Array
(
    [0] => a
    [1] => aaaa
    [2] => abc
    [3] => aca
    [4] => acb
)

[解决办法]
引用:
这个需求比较另类
$a = array(
  'a',
  'acb',
  'abc',
  'aca',
  'aaaa',
);

$m = max(array_map('strlen', $a));
foreach($a as $v) {
  $c = substr($v, -1);
  $t[] = str_pad($v, $m, $c);
}
array_multisort($t, $a);
print_r($a);
Array
(
    [0] => a
    [1] => aaaa
    [2] => abc
    [3] => aca
    [4] => acb
)


为什么不可以直接用sort排?
[解决办法]
系统函数就可以啊

$arr = array(
'a',
'acb',
'abc',
'aca',
'aaaa'
);
sort($arr);

print_r($arr);

热点排行