[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: После перехода с php5 на php7 usort() не работает
kav1
Доброго времени суток. Имеется вот такой кусок кода с сортировкой, который работает на сервере с php5.6:

function getscore($myarray) {
$ourscore = 0;
if (($myarray[4] == '') AND (($myarray[5] == '') OR ($myarray[5] == '00:00:00')) AND (($myarray[6] == '') OR ($myarray[6] == '00:00:00'))) {
$ourscore = 1;
}

else if (($myarray[4] != '') AND (($myarray[5] == '') OR ($myarray[5] == '00:00:00')) AND (($myarray[6] == '') OR ($myarray[6] == '00:00:00'))) {
$ourscore = 2;
}

else if (($myarray[4] == '') AND ((($myarray[5] != '') AND ($myarray[5] != '00:00:00')) OR (($myarray[6] != '') AND ($myarray[6] != '00:00:00')))) {
$ourscore = 3;
}

else if (($myarray[4] != '') AND ((($myarray[5] != '') AND ($myarray[5] != '00:00:00')) OR (($myarray[6] != '') AND ($myarray[6] != '00:00:00')))) {
$ourscore = 4;
}
return $ourscore;
}

function cmp2(array $a, array $b)
{

return (getscore($b) - getscore($a));

}

$initarr = array();

$initarr [0] = ['1','2','2022-04-07','2022-04-15', '', '10:35:00', '11:35:00', '1', '850'];
$initarr [1] = ['1','3','2022-04-01','2022-04-20', '5', '10:30:00', '11:30:00', '1', '700'];
$initarr [2] = ['1','5','2022-04-05','2022-04-15', '4', '', '', '1', '800'];
$initarr [3] = ['1','0','2022-04-07','2022-04-15', '', '', '', '1', '800'];
$initarr [4] = ['1','5','2022-04-06','2022-04-16', '', '', '', '0', '900'];
$initarr [5] = ['1','5','2022-04-07','2022-04-12', '2', '', '', '0', '600'];

$maxscoresarray = array();

if (count($initarr) > 0) {
usort($initarr, 'cmp2');
$maxscoresarray = $initarr[0];
}
echo "maximum score array is<br>";
var_dump($maxscoresarray);


После переезда на новый сервер получаю:

"Usort() expects parameter 2 to be a valid callback error", в php5.6 все работало.

Пробовал еще:

usort($initarr, function($a, $b) {
cmp2($a, $b);
});


И также:

function cmp2(array $a, array $b) 
{
return getscore($b) <=> getscore($a);
}


В этих случаях ошибка не вылазит, но и сортировка не производится. Что изменить в коде, чтобы заставить сортировать на сервере с php7?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.