/** * Sorting elements by key (key may be property, array key, or method) */ public static function sortBy(&$sortingArray, $sortByKey, $orderAsc = true, $saveIndexes = false) { // //self::$sortingArray = null; self::$sortKey = $sortByKey; $function_name = ''; self::$orderSort = $orderAsc ? 1 : -1; foreach ($sortingArray as $firstElem) { break; } if (is_array($firstElem)) { $function_name = 'UtilsHelper::compareByKey'; } if (is_object($firstElem)) { if (method_exists($firstElem, $sortByKey)) { $function_name = 'UtilsHelper::compareByMethod'; } else { $function_name = 'UtilsHelper::compareByProperty'; } } if ($saveIndexes) { uasort($sortingArray, $function_name); } else { usort($sortingArray, $function_name); } }