数字用字符串排序

时间:2016-09-16 03:25:29

标签: php sorting

我用这个检查数字排序:

$fruits = array("c","b","a", "11",100, 100,"10",  );
sort($fruits, SORT_NUMERIC);
foreach ($fruits as $key => $val) {
    echo $val."<br>";
}

输出是 C b 一个 一个 10 11 100 100

为什么它显示c高于b?

2 个答案:

答案 0 :(得分:0)

数字排序意味着它根据thair ascci值对数组进行排序  以下是数组的ascii值 c ascii:99 b ascii:98 一个ascii:97 11 ascii:49 10 ascii; 49 100 ascii:49 100 ascii:49

答案 1 :(得分:0)

如果您只使用字母和数字值,则可以使用以下代码:

 <?php
  $fruits = array("c","b","a", "11",100, 100,"10");
    natsort($fruits);
    $numarray = array();
    $strarray = array();
    foreach ($fruits as $key => $value) {
            // $array[] = $value;
            if(is_numeric($value)){
                    $numarray[] = $value;
            }
            else {
                    $strarray[] = $value;
            }
    }
    $array = array_merge($strarray,$numarray);
    // print_r($array);
    foreach ($array as $key1 => $val) {
        echo $val."<br>";
    }
 ?>

希望这有帮助!