src/Arrays/Sort.php
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;
    }
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;
    }
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 ; }
Allow to sort array with SortData elements.

@param array $data
@param null $mostFrequentQuantity
@return SortData|array
@throws \Exception
Allow to sort array with SortData elements .