%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/libs/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/libs/Sort.php |
<?php /** * @link https://www.humhub.org/ * @copyright Copyright (c) 2018 HumHub GmbH & Co. KG * @license https://www.humhub.com/licences * */ namespace humhub\libs; /** * Class Sort * * @package humhub\libs */ class Sort { /** * @param array $arr The input array. * @param string $field The attribute or array key to which holds the sort order * @param int $default The default sort order if field value is empty. Default PHP_INT_MAX * * @return array the sorted array */ public static function sort(&$arr, $field = 'sortOrder', $default = PHP_INT_MAX) { usort($arr, function ($a, $b) use ($field, $default) { $sortA = static::getSortValue($a, $field, $default); $sortB = static::getSortValue($b, $field, $default); if ($sortA == $sortB) { return 0; } elseif ($sortA < $sortB) { return -1; } else { return 1; } }); return $arr; } /** * @param array|object $obj the object or array * @param string $field the field name * @param int $default the default sort order * @return int */ private static function getSortValue($obj, $field, $default) { if (is_array($obj) && isset($obj[$field])) { return $obj[$field] === null ? $default : $obj[$field]; } if (property_exists($obj, $field)) { return $obj->$field === null ? $default : $obj->$field; } return PHP_INT_MAX; } }