[Exam Problems] PHP Basics - Exam 29.08 - Morning - {04} softuniTunes
Здравейте колеги,
Някой може ли да ми каже защо с този код ми дава само 70/100 в judge-a ? Тествах си кода в различни ситуации, но не мога да разбера къде гърми.
Здравейте колеги,
Някой може ли да ми каже защо с този код ми дава само 70/100 в judge-a ? Тествах си кода в различни ситуации, но не мога да разбера къде гърми.
Здравейте, дали ще може някой да удари едно рамо..., че зациклих. Не мога да разбера къде бъркам при сортирането....
Благодаря!
Като гледам сортирането го правиш през няколко цикъла и там нещата сякаш малко се претруват и усложняват.
Защо не ползваш просто usort функцията за сортиране на масиви? С нея нещата добиват много по-ясен и прегледен вид.
Тази задача не съм я решавал понеже ми се стори твърде "стандартна" но ако трябва да я решавам бих го направил с usort и анонимни функции. Ако не си работил досега с нея кажи да помагаме.
За илюстрация пускам само сортирането на задача 4 от 31.08.2014, която е горе-долу идентична
usort ( $students, function ($a, $b) use($order, $col) {
switch ($order . '-' . $col) {
case 'ascending-username' :
$cmp = strcmp ( $a [0], $b [0] );
return $cmp ? $cmp : $a [4] > $b [4];
case 'descending-username' :
$cmp = strcmp ( $b [0], $a [0] );
return $cmp ? $cmp : $a [4] > $b [4];
case 'ascending-id' :
return $a [4] > $b [4];
case 'descending-id' :
return $a [4] < $b [4];
case 'ascending-result' :
$cmp = $a [3] == $b [3] ? 0 : ($a [3] > $b [3] ? 1 : - 1);
return $cmp ? $cmp : $a [4] > $b [4];
case 'descending-result' :
$cmp = $a [3] == $b [3] ? 0 : ($a [3] < $b [3] ? 1 : - 1);
return $cmp ? $cmp : $a [4] < $b [4];
}
} );
Според мен ще ти е по-лесно да разбереш как работи ето това сортиране (погледни usort функцията):
04. softuniTunes
Веднъж успееш ли да разбереш как се прави след това сортирането по 2 критерия е доста лесно. Това, което правя при това сортиране е:
Един вариант от мен с използване на array_multisort: softUniTunes
В повечето случаи е по-удобен за ползване от usort според мен :)
Благодаря на всички, много ми помогнахте!