php配列はピンインの頭文字で並べ替えてグループ化する

1568 ワード

PHP配列はピンインの頭文字で並べ替えて並べ替えます:
ソートする配列のフォーマット:
$list = [
    [
        'name' => '  ',
        'py' => 'zhnagsan'
    ],
    [
        'name' => '  ',
        'py' => 'lisi'
    ],
    [
        'name' => '  ',
        'py' => 'wangwu'
    ],
    [
        'name' => '  ',
        'py' => 'zhaoliu'
    ],
];

$resault = data_letter_sort($list, 'py');

メソッド・コードは次のとおりです.
/**
 *              
 * 
 * @param {Array} $list ;          ,     
 * @param {string} $field ;             ,           
 */
function data_letter_sort($list, $field) {
    $resault = array();

    foreach( $list as $key => $val ){
        //    #   ,                       
        $resault['#'] = array();
        //           
        $letter = strtoupper( substr($val[$field], 0, 1) );
        //            
        if( !preg_match('/^[A-Z]+$/', $letter) ){
            $letter = '#';
        }
        //         
        if( !array_key_exists($letter, $resault) ){
            $resault[$letter] = array();
        }
        //            
        Array_push($resault[$letter], $val);
    }
    //            ,       boolean
    ksort($resault);
    //   #         
    $arr_last = $resault['#'];
    unset($resault['#']);
    $resault['#'] = $arr_last;
    
    return $resault;
}

js配列はピンインの頭文字で並べ替えてグループ化します:接続をクリックして表示します