Сортировка массивов PHP и совместимость с персидскими алфавитами

ссылаются на настройку пути ENV: http://www.pythoncentral.io/add-python-to-path-python-is-not-recognized-as-an-internal-or-external-command / убедитесь, что путь env добавлен правильно, для 2.7- "c: \ Python27 \ Scripts;"

см. раздел «Получить раздел»: http://www.tylerbutler.com/2012/05/how-to-install-python-pip-and-virtualenv-on-windows-with-powershell /

использовать эти ресурсы. Это решит проблему для вас

10
задан Farid Rn 1 April 2014 в 20:46
поделиться

1 ответ

Для сортировки массива по персидским символам сначала обратите внимание, что некоторые символы в стандарте Unicode не правильно выровненные. В этой ситуации мое предложение состоит в том, чтобы создать эквидистантную антенную решетку персидских символов и расположить подчиненный массив согласно этому массиву. например:

function persianSort($item1, $item2){
    $persian_characters = [
        1 =>  'ا',
        2 =>  'ب',
        3 =>  'پ',
        4 =>  'ت',
        5 =>  'ث',
        6 =>  'ج',
        7 =>  'چ',
        8 =>  'ح',
        9 =>  'خ',
        10 =>  'د',
        11 =>  'ذ',
        12 =>  'ر',
        13 =>  'ز',
        14 =>  'ژ',
        15 => 'س',
        16 => 'ش',
        17 =>  'ص',
        18 =>  'ض',
        19 =>  'ط',
        20 =>  'ظ',
        21 =>  'ع',
        22 =>  'غ',
        23 =>  'ف',
        24 =>  'ق',
        25 =>  'ک',
        26 =>  'گ',
        27 =>  'ل',
        28 =>  'م',
        29 =>  'ن',
        30 =>  'و',
        31 =>  'ه',
        32 =>  'ی',
    ];

    if(substr($item1,0,2) == substr($item2,0,2))
        return persianSort(substr($item1,2), substr($item2,2));
    return array_search( substr($item1,0,2), $persian_characters) < array_search( substr($item2,0,2), $persian_characters) ? -1: 1;
}

$states = ['گیلان', 'گرگان', 'یزد', 'سمنان', 'تهران', 'اردبیل', 'کرمان', 'چهار محال بختیاری', 'مشهد', 'اصفهان', 'قم', 'آستارا'];

usort($states, "persianSort");

print_r($states);

код выше видов неупорядоченный массив иранских названий области. вывод вышеупомянутого кода следующие:

Array
(
    [0] => اردبیل
    [1] => اصفهان
    [2] => تهران
    [3] => چهار محال بختیاری
    [4] => سمنان
    [5] => قم
    [6] => کرمان
    [7] => گرگان
    [8] => گیلان
    [9] => مشهد
    [10] => یزد
)
0
ответ дан 4 December 2019 в 03:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: