изолировать строку от переменной, содержащей числа Переполнение стека

Я пытаюсь выделить текст, который я добавил к переменным, которые содержат только цифры. Я посмотрел это и не могу найти ничего, что работает или даже близко к тому, что я пытаюсь сделать. Вот что я ищу:

$winning = max(array($var1."Var_One", $var2."Var_Two", $var3."Var_Tree", $var4."Var_Four"));
$winning = {the function that I'm missing}

Я хочу найти строку, которая сопровождает переменную с самым высоким значением, а затем использовать ее в случае переключения, например:

switch ($winning) {
case "Var_One":
echo "This variable is the highest value.";
break;
case "Var_Two":
echo "This variable is the highest value.";
break;
case "Var_Three":
echo "This variable is the highest value.";
break;
default:
echo "Values are tied.";
}

Я попытался использовать решение регулярных выражений, которое не сработало, и strpos не делает то, что мне нужно.

Любая помощь приветствуется.

ОТВЕТ:

function getMaxValue(array $list) {
$result = [];
foreach($list as $k => $v) {
if(!isset($result["value"]) || $result["value"] < $v) {
$result = [
"value" => $v,
"key" => $k,
];
}
}
return $result;
}
$winning = ["Var_One" => $var1, "Var_Two" => $var2, "Var_Three" => $var3];
$winning = getMaxValue($winning);
if(strpos($winning,'Var_One') !== false) {
echo "Var_One is currently winning by ".$var1."!";
} else if(strpos($winning,'Var_Two') !== false) {
echo "Var_Two is currently winning by ".$var2."!";
} else if(strpos($winning,'Var_Three') !== false) {
echo "Var_Three is currently winning by ".$var3."!";
} else {
echo "Tie.";
}

0

Решение

Я думаю, что вы можете искать что-то вроде этого:

function getMaxValue(array $list)
{
$result = [];
foreach ($list as $k => $v) {
if (!isset($result["value"]) || $result["value"] < $v) {
$result = [
"value" => $v,
"key" => $k,
];
}
}
return $result;
}

Тестовое задание:

$list = ["one" => 2, "two" => 0, "three" => 5, "four" => 4];
var_dump(getMaxValue($list));

Результат:

array(2) {
["value"]=>
int(5)
["key"]=>
string(5) "three"}
0

Другие решения

$winning = max(array_map("intval", array($var1."Var_One", $var2."Var_Two", $var3."Var_Tree", $var4."Var_Four")));
0