protected function sortArray($array)
{
$sorted = [];
foreach ($array as $index => $object) {
if (true === isset($this->arguments['sortBy'])) {
$index = $this->getSortValue($object);
}
while (isset($sorted[$index])) {
$index .= '.1';
}
$sorted[$index] = $object;
}
if ('ASC' === $this->arguments['order']) {
ksort($sorted, $this->getSortFlags());
} elseif ('RAND' === $this->arguments['order']) {
$sortedKeys = array_keys($sorted);
shuffle($sortedKeys);
$backup = $sorted;
$sorted = [];
foreach ($sortedKeys as $sortedKey) {
$sorted[$sortedKey] = $backup[$sortedKey];
}
} elseif ('SHUFFLE' === $this->arguments['order']) {
shuffle($sorted);
} else {
krsort($sorted, $this->getSortFlags());
}
return $sorted;
}