recherche

Maison  >  Questions et réponses  >  le corps du texte

php - Traitement simple des chaînes, recherche d'idées.

$arr = [2,3,4,5,8,10,11,12,13,16,19] ;

Convertir en chaîne

2-5, 8, 10-13, 16, 19

Mon idée personnelle est de sélectionner 8 16 19 qui ne dépendent pas des deux côtés, puis de sélectionner une valeur maximale et minimale parmi 2 3 4 5.

滿天的星座滿天的星座2869 Il y a quelques jours439

répondre à tous(3)je répondrai

  • 怪我咯

    怪我咯2017-05-16 13:15:33

    Notez la valeur du point de départ et numérisez en arrière. Si elle est continue, continuez en arrière. Sinon, notez la valeur du point final et obtenez un début ou une fin. continuez...

    répondre
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-16 13:15:33

    $arr=array(2,3,4,5,8,10,11,12,13,16,19);
    //最大值
    $max=max($arr);
    //求和
    $sun=array_sum($arr);
    //排序
    asort($arr);
    //a1为标准数组,用来判断值是否存在
    //a2用来存放已经被使用过的数
    //a3为最后的结果数组
    foreach ($arr as $key => $value) {
        
         $a1[$value]=$value;
    }
    
    foreach ($arr as $key => $value) {
         if(!isset($a2[$value])){
                 $start=$value;
                 $end=$value;
            
                 $a2[$value]=$value;
                 for($i=0;$i<$sun;$i++){
                
                                $end = $end+1;
                                if(isset($a1["$end"])){
                    
                                    $a2[$end]=$end;
                
                                }else{
                                    $end =$end-1;
                                    if($start==$end){
                                      $a3 []= $start;
                                    }else{
                                      $a3 []=   $start."-".$end;
                                    }
                                    
                                   //断开了,跳出循环
                                    break;
                                }
                
                
                   }
           }
    }
    
    echo '<pre>';
    var_dump($a3);
    
    die;
    

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 13:15:33

    Divisez le tableau en 5 morceaux, puis traitez les sous-tableaux.

    répondre
    0
  • Annulerrépondre