cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimanakah usort() menyusun tatasusunan dua dimensi dalam tertib menurun?

Usort() Cara mengisih tatasusunan dua dimensi dalam tertib menurun

弦知音弦知音2153 hari yang lalu1278

membalas semua(5)saya akan balas

  • 弦知音

    弦知音2019-02-16 09:40:40

    $stu = [
        ['name'=>'周天子', 'grade'=>'99'],
        ['name'=>'汉高祖', 'grade'=>'73'],
        ['name'=>'秦始皇', 'grade'=>'95'],
    ];
    //输出原始数组
    echo var_export($stu, true),'<hr>';
    
    //用户自定义回调来进行排序(降序)
    usort($stu, function ($m, $n){
        return strcmp($n['grade'], $m['grade']);    // strcmp()函数 (本函数返回: 0 如果两个字符串相等, <0 如果 string1 小于 string2, >0 如果string1 大于 string2
    });
    //输出排序后的数组
    echo var_export($stu, true),'<hr>';


    balas
    1
  • 刘毅

    刘毅2019-02-15 21:45:06

    Anda boleh merujuknya,

    <?php

    ujian fungsi($array=array(),$key='',$paixu=true){

    $result=array();

    foreach ($array sebagai $k => $v){

    $values[$k]= isset($v[$key]) ? $ v);

    $paixu ? asort($values) : arsort($values);

    foreach ($values ​​​​as $k => $v){

    $result[$k] = $array[ $k];

    }

    kembalikan $result;

    }

    $data = array(

    array('post_id'=>1,'title'=>'Cara belajar PHP dengan baik',' reply_num'=>582),

    array('post_id'=>2,'title'=>'Ringkasan fungsi biasa untuk tatasusunan PHP','reply_num'=>182),

    array('post_id' =>3,'title'=>'Ringkasan fungsi rentetan PHP biasa','reply_num'=>982),

    );

    $paixuhou=test( $data,'reply_num', true);


    echo "<pra>";

    print_r($paixuhou);

    ?>

    balas
    0
  • 刘毅

    刘毅2019-02-15 21:44:36

    Ia rsort(), anda menggunakan fungsi yang salah.

    balas
    0
  • 弦知音

    Abaikan nama kunci dan susun mengikut nilai, susun() tertib menaik, rsot() tertib menurun, usort() panggil balik, saya bertanya bagaimana untuk turun menggunakan kaedah panggil balik, bukan kerana fungsi itu digunakan secara salah.

    弦知音 · 2019-02-16 08:51:08
  • Batalbalas