protected function comparePresetsForTargetValue(array $possibleBetterPreset, array $targetValues, array $currentBestPreset = null)
{
if (!isset($possibleBetterPreset['values'][0])) {
return $currentBestPreset;
}
if ($possibleBetterPreset['values'] === $targetValues) {
return $possibleBetterPreset;
}
if ($possibleBetterPreset['values'][0] === reset($targetValues)) {
return $possibleBetterPreset;
}
foreach ($targetValues as $targetValue) {
if ($currentBestPreset === null && in_array($targetValue, $possibleBetterPreset['values'])) {
return $possibleBetterPreset;
}
}
return $currentBestPreset;
}