免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
php-如何根據(jù)數(shù)組中指定的字母對(duì)大型數(shù)組進(jìn)行排序,以減少時(shí)間損失?

我如何用數(shù)組中指定的字母有效地對(duì)具有百萬(wàn)個(gè)值的數(shù)組進(jìn)行排序,而又不會(huì)浪費(fèi)時(shí)間.

$letters = array("а","б", "в", "г", "?", "д", "е", "ё", "?", "ж", "з", "и", "?", "й", "к", "?", "л", "м", "н", "о", "п", "р", "с", "т", "у", "?", "ф", "х", "?", "ч", "ш", "ъ", "э", "ю", "я"); 

通過(guò)特定鍵對(duì)數(shù)組排序的簡(jiǎn)單函數(shù).維護(hù)索引關(guān)聯(lián).此函數(shù)還對(duì)數(shù)組進(jìn)行排序,但不是按字母排序,而是按英語(yǔ)字母排序(在英語(yǔ)字母中效果更好).

<?phpfunction array_sort($array, $on, $order=SORT_ASC){    $new_array = array();    $sortable_array = array();    if (count($array) > 0) {        foreach ($array as $k => $v) {            if (is_array($v)) {                foreach ($v as $k2 => $v2) {                    if ($k2 == $on) {                        $sortable_array[$k] = $v2;                    }                }            } else {                $sortable_array[$k] = $v;            }        }        switch ($order) {            case SORT_ASC:                asort($sortable_array);            break;            case SORT_DESC:                arsort($sortable_array);            break;        }        foreach ($sortable_array as $k => $v) {            $new_array[$k] = $array[$k];        }    }    return $new_array;}$people = array(    12345 => array(        'id' => 12345,        'first_name' => 'Joe',        'surname' => 'Bloggs',        'age' => 23,        'sex' => 'm'    ),    12346 => array(        'id' => 12346,        'first_name' => 'Adam',        'surname' => 'Smith',        'age' => 18,        'sex' => 'm'    ),    12347 => array(        'id' => 12347,        'first_name' => 'Amy',        'surname' => 'Jones',        'age' => 21,        'sex' => 'f'    ));print_r(array_sort($people, 'age', SORT_DESC)); // Sort by oldest firstprint_r(array_sort($people, 'surname', SORT_ASC)); // Sort by surname/*Array(    [12345] => Array        (            [id] => 12345            [first_name] => Joe            [surname] => Bloggs            [age] => 23            [sex] => m        )    [12347] => Array        (            [id] => 12347            [first_name] => Amy            [surname] => Jones            [age] => 21            [sex] => f        )    [12346] => Array        (            [id] => 12346            [first_name] => Adam            [surname] => Smith            [age] => 18            [sex] => m        ))Array(    [12345] => Array        (            [id] => 12345            [first_name] => Joe            [surname] => Bloggs            [age] => 23            [sex] => m        )    [12347] => Array        (            [id] => 12347            [first_name] => Amy            [surname] => Jones            [age] => 21            [sex] => f        )    [12346] => Array        (            [id] => 12346            [first_name] => Adam            [surname] => Smith            [age] => 18            [sex] => m        ))*/?>

另一個(gè)按值排序的變體:

<?php $data = array("US" => "United States", "IN" => "India", "DE" => "Germany", "ES" => "Spain");asort($data); print_r($data);/*Array ([DE] => Germany[IN] => India[ES] => Spain[US] => United States) */

?>

我的示例數(shù)組用于排序:

<?phpArray(    [0] => дувозда??азорсоларо    [2] => мусовиул?увваро    [3] => фар?ангшиносону    [6] => ило?иётшиносони    [7] => сарнавиштпазир?    [14] => сангнабишта?ое    [15] => ило?иётшиносон    [16] => музаффарият?ои    [18] => минта?атулбур?    [20] => фар?ангнома?ои    [21] => парастишго??ое    [22] => кишваркушои?ои    [23] => парастишго??ои    [24] => фар?ангшиносон    [26] => та?ъирнопазир    [29] => ил?одшиносони    [30] => сангнабишта?о    [31] => сангнабишт?ои    [32] => гумро?кунанда    [34] => байнанна?райн    [35] => наан?омидааст    [38] => пар?езкоронаи    [39] => ме?рпарастист    [42] => даре?ухвазата    [45] => лашкаркаши?ои    [47] => мовароуттаби?    [49] => дастнах?рдаг?    [51] => ша?ватпараст?    [53] => аввалиндара?а    [56] => ме?рпарастиву    [57] => ?а?оншиносиро    [58] => ме?рпарастиро    [60] => зарвонпараст?    [62] => ?астишиносиву    [63] => му?о?ираташон    [65] => паж??андагон    [66] => баву?удомада    [67] => ситорашинос?    [72] => н???азорсола    [74] => а?уромаздост    [75] => ?а?онишинос?);?>

此結(jié)果未按我的頂點(diǎn)排序從數(shù)組排序:

<?php    $array = array (        "?ктам?он",        "?айрат",        "маъруф?он",        "рустам",        "карим",        "?урматой",        "то?ик?",        "забони то?ик?",        "адолат"    );    echo "<pre>";        print_r($array);    echo "</pre>";    /*    Array    (        [0] => ?ктам?он        [1] => ?айрат        [2] => маъруф?он        [3] => рустам        [4] => карим        [5] => ?урматой        [6] => то?ик?        [7] => забони то?ик?        [8] => адолат    )    */    setlocale(LC_ALL, "tg-Cyrl-TJ");     sort($array, SORT_LOCALE_STRING);    echo "<pre>";        print_r($array);    echo "</pre>";    /*    Array    (        [0] => адолат        [1] => забони то?ик?        [2] => карим        [3] => маъруф?он        [4] => то?ик?        [5] => рустам        [6] => ?айрат        [7] => ?урматой        [8] => ?ктам?он    )    */    /*  Result must be:    Array    (        [0] => адолат        [1] => ?айрат        [2] => забони то?ик?        [3] => карим        [4] => маъруф?он        [5] => рустам        [6] => то?ик?        [7] => ?ктам?он        [8] => ?урматой    )    */?>

解決方法:

您可以使用此函數(shù)按任何字符順序?qū)?shù)組值進(jìn)行排序,這需要作為第二個(gè)參數(shù)提供:

function customSort(&$arr, $charOrder) {    $mappedChar = $charOrder;    sort($mappedChar);    $mapping = array_combine($charOrder, $mappedChar);    foreach($arr as $str) {        $mapped[] = strtr($str, $mapping);    }    return array_multisort($mapped, $arr);}

就像標(biāo)準(zhǔn)的PHP函數(shù)一樣,它對(duì)數(shù)組進(jìn)行原位排序.

這是您將如何使用它:

$charOrder = ["а","б", "в", "г", "?", "д", "е", "ё", "?", "ж", "з", "и", "?", "й", "к", "?", "л", "м", "н", "о", "п", "р", "с", "т", "у", "?", "ф", "х", "?", "ч", "ш", "ъ", "э", "ю", "я"];// Sample unsorted array$arr = [        "?ктам?он",        "?айрат",        "маъруф?он",        "рустам",        "карим",        "?урматой",        "то?ик?",        "забони то?ик?",        "адолат"    ];customSort($arr, $charOrder);

運(yùn)行上面的示例后,$arr將具有以下內(nèi)容:

array (  'адолат',  '?айрат',  'забони то?ик?',  'карим',  'маъруф?он',  'рустам',  'то?ик?',  '?ктам?он',  '?урматой',) 
來(lái)源:https://www.icode9.com/content-1-521001.html
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
PHP中數(shù)組的區(qū)別
[PHP] 判斷兩個(gè)數(shù)組是否相同
PHP 對(duì)數(shù)組使用 自然算法 進(jìn)行排序 natsort 與 natcasesort 函數(shù)
php 二維數(shù)組排序函數(shù)
PHP將一數(shù)組遍歷放到另一數(shù)組方法
php數(shù)組聲明、遍歷、數(shù)組全局變量使用小結(jié)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服