[Core] Add getKey function (#3275)

* [Core] Add getKey function
This commit is contained in:
Bocki 2023-03-02 13:25:57 +01:00 committed by GitHub
parent f0d8cfd4d4
commit f3f98a117c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 17 deletions

View file

@ -294,6 +294,32 @@ abstract class BridgeAbstract implements BridgeInterface
return $this->inputs[$this->queriedContext][$input]['value'];
}
/**
* Get the key name of a given input
* Can process multilevel arrays with two levels, the max level a list can have
*
* @param string $input The input name
* @return string|null The accompaning key to a given input or null if the input is not defined
*/
public function getKey($input)
{
if (!isset($this->inputs[$this->queriedContext][$input]['value'])) {
return null;
}
$needle = $this->inputs[$this->queriedContext][$input]['value'];
foreach (static::PARAMETERS[$this->queriedContext][$input]['values'] as $first_level_key => $first_level_value) {
if ($needle === (string)$first_level_value) {
return $first_level_key;
} elseif (is_array($first_level_value)) {
foreach ($first_level_value as $second_level_key => $second_level_value) {
if ($needle === (string)$second_level_value) {
return $second_level_key;
}
}
}
}
}
/**
* Get bridge configuration value
*/