cari

Rumah  >  Soal Jawab  >  teks badan

PHP mengira nilai maksimum dan minimum bagi tatasusunan Dashenjin

Bagaimana untuk mengira nilai maksimum dan nilai minimum tatasusunan sedemikian

Anda boleh lihat sepintas lalu bahawa nilai minimum ialah 0 dan nilai maksimum ialah 459, tetapi bagaimana anda mengiranya menggunakan php?

怪我咯怪我咯2804 hari yang lalu872

membalas semua(6)saya akan balas

  • 高洛峰

    高洛峰2017-05-18 10:48:03

    1 Tukarkannya kepada tatasusunan satu dimensi dan gunakan min dan maks untuk mencari minimum dan maksimum masing-masing

    .
    function getMaxAndMin($items){
        $newItems=[];
        $cutStr=',';//要分割的字符
        foreach($items as $item)
        {
        //保证是String并且包含','
          if(is_string($item) && strpos($item,$cutStr)!==false)
          {
            list($t1,$t2)=explode(',',$item)
            $newItems[]=$t1;
            $newItems[]=$t2;
           }else{
               $newItems[]=$item;
           }
        }
        return [min($newItems),max($newItems)];
    }
    $exampleArr=[
    '0,129',
    '130,249',
    '250,459'
    ];
    list($min,$max)=getMaxAndMin($exampleArr);

    Tambah pelan di tingkat bawah, yang lebih mudah
    @jacoob_w

    function getMaxAndMin($items,$operator=',')
    {
        $data = explode($operator, join($operator,$data));
        return [min($data),max($data)];
    }

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-18 10:48:03

    <?php                                                                                                                                                                       
    define('CLI_SCRIPT', true);                                                                                                                                                 
                                                                                                                                                                                
    $example = array(                                                                                                                                                           
        '0, 129',                                                                                                                                                               
        '130, 249',                                                                                                                                                             
        '250, 459'                                                                                                                                                              
    );                                                                                                                                                                          
    $new_arr = [];                                                                                                                                                              
    foreach ($example as $item) {                                                                                                                                               
        $new_items = explode(',', $item);                                                                                                                                       
        $new_arr = array_merge($new_arr, $new_items);                                                                                                                           
    }                                                                                                                                                                           
    var_dump($new_arr);                                                                                                                                                         
    sort($new_arr, SORT_NUMERIC);    //排序                                                                                                                                     
    $min = array_shift($new_arr);    //最小值                                                                                                                                   
    $max = array_pop($new_arr);      //最大值                                                                                                                                           
    var_dump($min);                                                                                                                                                             
    var_dump($max);  

    balas
    0
  • 仅有的幸福

    仅有的幸福2017-05-18 10:48:03

    1 Anda boleh melaksanakan algoritma secara manual, tetapi prestasi boleh dibayangkan
    2 Adalah disyorkan untuk menggunakan fungsi terbina dalam PHP: http://php.net/manual/zh/func...

    .

    balas
    0
  • 世界只因有你

    世界只因有你2017-05-18 10:48:03

    $arr = array(
        '0,129',
        '130,249',
        '250,459',
    );
    $mix = intval($arr[0]);
    $max = explode(',', end($arr))[1];

    Gunakan mengikut situasi sebenar
    Oleh kerana saya melihat bahawa penyoal mempunyai masalah lain, saya memutuskan bahawa struktur datanya adalah seperti ini, dan saiznya meningkat dari atas ke bawah

    balas
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-18 10:48:03

    Saya menerima jawapan dengan begitu pantas, saya secara peribadi merasakan bahawa jawapan yang saya pakai bukanlah penyelesaian terbaik.

    $data = array(
        '0,129',
        '130,249',
        '380,22'
    );
    
    $dataArr = explode(',', join(',',$data));
    echo "max:".max($dataArr)."<br/>";
    echo "min:".min($dataArr);

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-05-18 10:48:03

    $data = ['0,129','130,249','250,459'];
      $str=implode(',',$data);
      $arr=explode(',',$str);
      var_dump(max($arr));
      var_dump(min($arr));

    balas
    0
  • Batalbalas