这可能没有多大意义。我想知道是否有任何值可以放入数组并对其进行排序,它将在所有否定条目之前或在所有正数条目之后。
$keys = array('m1' => 1, -500 => 1, 0 => 1, 1000 => 1, 'm' => 1, 5000 => 1, );
foreach($keys as $k => $v){
echo $k . '<br />';
}
返回
-500
m
0
m1
1000
5000
答案 0 :(得分:2)
<?
$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
但这有点像黑客。可能有更好的方法来实现这一目标。
答案 1 :(得分:0)
如果您想将单个字符作为数组键,请尝试chr(0)和chr(255)。
等一下:如果你不断更改问题,很难回复。
你有-500作为一个键:这不是一个字符。
然后,使用-PHP_INT_MAX表示较低值,使用PHP_INT_MAX表示较高值。