求一算法
$str = array();
$str[] = "csdn我最喜欢了啊";
$str[] = "喜欢了";
$str[] = "有时间我也经常来这里,呵呵";
$str[] = "时间不早了?";
不知道如何实现把str数组按照数组项的字符串长度的多少从少到多来重新排序,排序函数执行之后应当是:
$str[] = "喜欢了";
$str[] = "时间不早了?";
$str[] = "csdn我最喜欢了啊";
$str[] = "有时间我也经常来这里,呵呵";

解决方案 »

  1.   


    for($i=0;$i<count($str);$i++){
        for($j=0;$j<$i;$j++){
            if(strlen($str[$j])>strlen($str[$j+1])){
                   $temp = $str[$j];
                   $str[j] = $str[j+1];
                   $str[j+1] = $temp;
            }
        }
    }
      

  2.   

    for($i=0;$i<count($str);$i++){
        for($j=0;$j<$i;$j++){
            if(strlen($str[$j])>strlen($str[$j+1])){
                   $temp = $str[$j];
                   $str[$j] = $str[$j+1];
                   $str[$j+1] = $temp;
            }
        }
    }
      

  3.   

    <?php
    $str = array();
    $str[] = "csdn我最喜欢了啊";
    $str[] = "喜欢了";
    $str[] = "有时间我也经常来这里,呵呵";
    $str[] = "时间不早了?"; function cmp($a, $b){
    $lena = strlen($a);
    $lenb = strlen($b);
    return $lena > $lenb ? 1 : ($lena == $lenb ? 0 : -1);
    }usort($str, "cmp");print_r( $str);
    ?>