@Aricus

Почему не работает usort?

usort должен изменять ключи массива. Однако, ничего не происходит, несмотря на то, что функция сортировки используется и исправно возвращает значения: -1, 0, 1.
$saveStartProdDetails = $startProdDetails;
usort(setArr($startProdDetails), 'sortProdTest');

function sortProdTest ($v1, $v2) {
    if (mb_strlen($v1['name']) == mb_strlen($v2['name'])) {
        $result = 0;
    } else {
        $result = (mb_strlen($v1['name']) < mb_strlen($v2['name']))? -1: 1;
    }
    var_dump($result);
    return $result;
}

foreach ($startProdDetails as $i => $el) {
    var_dump($i.' - '.$saveStartProdDetails[$i]['good'].' - '.$startProdDetails[$i]['good']);
}

int(-1)
int(1)
int(-1)
int(1)
int(-1)
int(1)
int(-1)
int(1)
int(0)
int(-1)
int(1)
int(-1)
int(-1)
int(1)
int(1)
int(1)
int(1)
int(1)
int(1)
int(1)
int(1)
int(1)
int(0)
int(1)
string(11) "0 - 53 - 53"
string(11) "1 - 55 - 55"
string(11) "2 - 59 - 59"
string(11) "3 - 61 - 61"
string(11) "4 - 62 - 62"
string(11) "5 - 63 - 63"
string(11) "6 - 65 - 65"
string(11) "7 - 66 - 66"
string(11) "8 - 68 - 68"
string(11) "9 - 52 - 52"
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
v3shin
@v3shin
Веб-шаман
А что у вас делает setArr()? Если она не возвращает ссылку на исходный массив $startProdDetails, то дело в этом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы