Temu bual - soalan ujian bertulis mengenai pengisihan tatasusunan php
世界只因有你
世界只因有你 2017-05-16 13:00:16
0
5
708

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?

世界只因有你
世界只因有你

membalas semua(5)
某草草
asort($array, SORT_FLAG_CASE | SORT_NATURAL);
var_dump($array);

Dapatkan:

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

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
)

 */
phpcn_u1582

Satu fungsi sistem untuk melakukannya

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

Terdapat fungsi tatasusunan yang membandingkan nilai secara terus

世界只因有你

array_sort(array_values($rs_array))

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan