-1

这可能没有多大意义。我想知道是否有任何值可以放入数组中并对其进行排序,它会出现在所有负条目之前或所有正条目之后。

    $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
4

2 回答 2

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

不过,这有点骇人听闻。可能有更好的方法来实现这一点。

于 2013-02-26T15:56:07.380 回答
0

如果您想要单个字符作为数组键,请尝试 chr(0) 和 chr(255)。

等一下:如果您不断更改问题,则很难回答。

您有 -500 作为键:这不是单个字符。

然后,使用 -PHP_INT_MAX 作为下限值,使用 PHP_INT_MAX 作为上限值。

于 2013-02-26T15:13:50.397 回答