cari

Rumah  >  Soal Jawab  >  teks badan

Temu bual - soalan ujian bertulis mengenai pengisihan tatasusunan php

Susun atur:

$array = [
            0=>"z01",
            1=>"Z32",
            2=>"z17",
            3=>"Z16",
        ];

Perlu hasil diisih

$rs_array = [
        0=>"z01",
        3=>"Z16",
        2=>"z17",
        1=>"Z32",
    ];

Apakah cara yang baik untuk mengisih?

世界只因有你世界只因有你2797 hari yang lalu740

membalas semua(5)saya akan balas

  • 某草草

    某草草2017-05-16 13:02:16

    asort($array, SORT_FLAG_CASE | SORT_NATURAL);
    var_dump($array);

    Dapatkan:

    array:4 [
      0 => "z01"
      3 => "Z16"
      2 => "z17"
      1 => "Z32"
    ]

    balas
    0
  • PHPz

    PHPz2017-05-16 13:02:16

    Anda boleh menggunakan fungsi perbandingan yang ditentukan pengguna, usort.

    
    $array  = [
                0=>"z01",
                1=>"Z32",
                2=>"z17",
                3=>"Z16",
            ];
    
    function cmp($a,$b){
      $a = intval(substr($a, 1));
      $b = intval(substr($b, 1));
      if ($a == $b) {
        return 0;
      }
      return ($a < $b ) ? -1 : 1;
    }
    
    usort($array, "cmp");
    print_r($array);
    
    /*
    
    Array
    (
        [0] => z01
        [1] => Z16
        [2] => z17
        [3] => Z32
    )
    
     */
    

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:02:16

    Satu fungsi sistem untuk melakukannya

    <?php
    $array  = [
                0=>"z01",
                1=>"Z32",
                2=>"z17",
                3=>"Z16",
            ];
    natcasesort($array);
    print_r($array);

    balas
    0
  • 阿神

    阿神2017-05-16 13:02:16

    Terdapat fungsi tatasusunan yang membandingkan nilai secara terus

    balas
    0
  • 世界只因有你

    世界只因有你2017-05-16 13:02:16

    array_sort(array_values($rs_array))

    balas
    0
  • Batalbalas