1. PHP / Говнокод #4269

    +148

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    $temp_leader=array();
    //получаю список всех пользователей
    $resUser = CUser::GetList($by = 'ID', $order = 'ASC', array("ACTIVE"=>"Y"));
    while ($arUser = $resUser->Fetch())
    {
            //получаю для конкретного юзера элементы
            $resElementUser = CIBlockElement::GetList(Array(), Array('ACTIVE'=>"Y", 'IBLOCK_ID'=>"45", 'CREATED_BY'=>$arUser['ID'], ">PROPERTY_POINT_FISH"=>"1"), false, false, Array("PROPERTY_POINT_FISH", "ID"));
            $p=0;
            while ($arElementUser = $resElementUser->Fetch())
            {
                    $p++;
                    $arElementUser111[] = $arElementUser;
                    $tempElementUser[] =  $arElementUser;
            }
            for ($i=0; $i<$p; $i++)
            {
                    $temp_fish[$i] = $arElementUser111[$i]["PROPERTY_POINT_FISH_VALUE"];
            }
            //надо подсчитать количество видов у пользователя
            if (count($temp_fish)>0)
            {
                    if (count($temp_fish) == 1)
                    {
                            $count_fish = 1;
                    }
                    else
                    {
                            $res = array_count_values($temp_fish);
                            $count_fish = count($res);
                    }
                    //если еще меньше 6 лидеров то надо в массив писать лидера без проверок
                    if (count($temp_leader)<6)
                    {
                            $temp_leader[]=$count_fish;
                            $temp_login[]= get_user_name($arUser['ID']);
                            $temp_user[]=$arUser['ID'];
                    }
                    //иначе выявляю min и запоминаю позицию его и если у текущего пользователя больше min то пишем в массив
                    else
                    {
                            $min = $temp_leader[0];
                            $temp_pos = 0;
                            for ($i=1; $i<7; $i++)
                            {
                                    if ($temp_leader[$i] < $min) {$min=$temp_leader[$i]; $temp_pos = $i;}
                            }
                            if ($count_fish > $min)
                            {
                                    $temp_leader[$temp_pos] = $count_fish;
                                    $temp_login[$temp_pos]= get_user_name($arUser['ID']);
                                    $temp_user[$temp_pos] = $arUser['ID'];
                            }
                    }
                    unset($temp_fish);
                    unset($tempElementUser);
                    unset($arElementUser111);
            }
    }
    for ($i=0;$i<count($temp_leader);$i++)
    {
            for ($j=count($temp_leader)-1; $j>$i; $j--)
            {
                    if ($temp_leader[$j-1]<$temp_leader[$j])
                    {
                            $per = $temp_leader[$j-1];
                            $temp_leader[$j-1] = $temp_leader[$j];
                            $temp_leader[$j] = $per;
    
                            $per1 = $temp_login[$j-1];
                            $temp_login[$j-1] = $temp_login[$j];
                            $temp_login[$j] = $per1;
    
                            $per2 = $temp_user[$j-1];
                            $temp_user[$j-1] = $temp_user[$j];
                            $temp_user[$j] = $per2;
                    }
            }
    }

    Запостил: atarix12, 17 Сентября 2010

    Комментарии (8) RSS

    • это выровненный вариант кода...
      на первоисточник больно было смотреть..
      Ответить
    • Это случаем не Битрикс?
      Ответить
      • Он самый
        Ответить
      • отличная политика: предлагать демо-версию в закоденом виде.. чтобы потенциальные покупатели не видели всякошной порнографии...
        ---
        ОлОлО «1С-Битрикс»
        Ответить
    • я брежу или там и вправду PROPERTY_POINT_FISH? СВОЙСТВО_ТОЧКА_РЫБА...
      Ответить
      • с национально-англокитайского это звусит так:
        РЫБЫ СВОЙСТВА ТОЧКИ или РЫБА ПУНКТА СОБСТВЕННОСТИ
        СВОЙСТВО ТОЧКИ РЫБЫ ЗНАЧЕНИЕ или ЦЕННОСТЬ РЫБЫ ПУНКТА СОБСТВЕННОСТИ
        Ответить
        • мой маленький моск не в силах дать этому связное значение ))
          Ответить

    Добавить комментарий