/** * Get an associate array for the tuples of the enum where the values * are the array indices and the labels are the array values. * * @param string $enumString * @return associate array indexed by labels. */ public static function getAssocArrayIndexedByValues($enumString) { if (isset(self::$_cacheAssocArrayIndexedByValues[$enumString])) { return self::$_cacheAssocArrayIndexedByValues[$enumString]; } $tuples = MantisEnum::getArrayOfTuples($enumString); $tuplesCount = count($tuples); $assocArray = array(); foreach ($tuples as $tuple) { $tupleTokens = MantisEnum::getArrayForTuple($tuple); # if not a proper tuple, skip. if (count($tupleTokens) != 2) { continue; } $value = (int) trim($tupleTokens[0]); # if already set, skip. if (isset($assocArray[$value])) { continue; } $label = trim($tupleTokens[1]); $assocArray[$value] = $label; } self::$_cacheAssocArrayIndexedByValues[$enumString] = $assocArray; return $assocArray; }