示例#1
0
 public static function getMostFrequentValues(array $data, $mostFrequentQuantity = NULL, $allocationPeriod = NULL)
 {
     $mostFrequentValues = [];
     $allocatedData = self::allocateInfo($data, $allocationPeriod);
     usort($allocatedData, function ($a, $b) {
         if ($a->getValueQuantity() === $b->getValueQuantity()) {
             if ($a->getValue() === $b->getValueQuantity()) {
                 return 0;
             }
             return $a->getValue() < $b->getValue() ? -1 : 1;
         } else {
             return $a->getValueQuantity() > $b->getValueQuantity() ? -1 : 1;
         }
     });
     if (!$mostFrequentQuantity) {
         $mostFrequentQuantity = self::MOST_FREQUENT_QUANTITY;
     }
     for ($i = 0; $i < $mostFrequentQuantity; $i++) {
         $frequentValue = new SortData();
         $frequentValue->setValue($allocatedData[$i]->getValue());
         $frequentValue->setValueQuantity($allocatedData[$i]->getValueQuantity());
         $valueExamples = $allocatedData[$i]->getValueExamples() !== "" ? substr($allocatedData[$i]->getValueExamples(), 0, -2) : $allocatedData[$i]->getValueExamples();
         $frequentValue->setValueExamples($valueExamples);
         if ($mostFrequentQuantity === 1) {
             $mostFrequentValues = $frequentValue;
         } else {
             $mostFrequentValues[] = $frequentValue;
         }
     }
     return $mostFrequentValues;
 }