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"