Закрывающий компилятор не компилирует библиотеку ES6

Этот скрипт должен быть выполнен по-своему. Надеюсь, это поможет. Обратите внимание на функцию mb_strtolower. Вы должны использовать его, чтобы сделать регистр функции нечувствительным. Причина, по которой я не использовал функцию strtolower, заключается в том, что она не очень хорошо работает со специальными символами.

<?php

function customSort($a, $b) {
    static $charOrder = array('a', 'b', 'c', 'd', 'e', 'é',
                              'f', 'g', 'h', 'i', 'j',
                              'k', 'l', 'm', 'n', 'o',
                              'p', 'q', 'r', 's', 't',
                              'u', 'v', 'w', 'x', 'y', 'z');

    $a = mb_strtolower($a);
    $b = mb_strtolower($b);

    for($i=0;$i<mb_strlen($a) && $i<mb_strlen($b);$i++) {
        $chA = mb_substr($a, $i, 1);
        $chB = mb_substr($b, $i, 1);
        $valA = array_search($chA, $charOrder);
        $valB = array_search($chB, $charOrder);
        if($valA == $valB) continue;
        if($valA > $valB) return 1;
        return -1;
    }

    if(mb_strlen($a) == mb_strlen($b)) return 0;
    if(mb_strlen($a) > mb_strlen($b))  return -1;
    return 1;

}
$array = array('Borgloon','Thuin','Lennik','Éghezée','Aubel');
usort($array, 'customSort');

EDIT: Извините. Я совершил много ошибок в последнем коде. Теперь проверено.

EDIT {2}: все с многобайтовыми функциями.

0
задан Chef Cyanide 31 March 2019 в 02:32
поделиться