<?
$keys = array('m1' => 1, -500 => 1, 0 => 1, 1000 => 1, 'm2' => 1, 5000 => 1,);
ksort($keys, SORT_STRING);
foreach($keys as $k => $v){
echo $k . '<br />';
}
?>
返回结果:
-500
0
1000
5000
m1
m2
请务必保持所有小写的字符串键,如果你以正确的顺序希望他们。这将把所有整数后的字符串。
继承人的方法的例子:http://codepad.org/IBc3wnso
我能想到的简单先得到你的非int
键的唯一途径,是--
前缀他们:
<?
$keys = array('--m2' => 1, -500 => 1, 0 => 1, 1000 => 1, '--m1' => 1, 5000 => 1,);
ksort($keys, SORT_STRING);
foreach($keys as $k => $v){
echo $k . "\n";
}
?>
将返回:
--m1
--m2
-500
0
1000
5000
例如:http://codepad.org/rwbrj3rJ
虽然这有点破绽。可能有更好的方法来实现这一点。
我从来没有尝试过,因为它说这是它用来排序的默认方法。任何你知道这种事情的机会都会被排除在负面价值之后。 IE米,-500,0 ....我正在寻找什么M将需要是在该顺序。我已经尝试了类似-m的东西,然而它的值介于-500和0之间。 – Iscariot 2013-02-26 16:12:48
您可以随时将其倒转并使用krsort,但是所有的键都会倒退,即'm2,m1,500,0,-500' – BenOfTheNorth 2013-02-26 16:15:08
不幸的是在这种情况下,我需要能够在-500之前下降。我所展示的清单是实际清单的1/1000。我可能会想出一些东西,但我正在尽量减少处理。 – Iscariot 2013-02-26 16:16:27