Php 从包含数字的变量中分离字符串
我正在尝试隔离附加到只包含数字的变量的文本。我已经查过了,但我找不到任何有效的,甚至接近我正在尝试做的事情。以下是我想要的:Php 从包含数字的变量中分离字符串,php,variables,switch-statement,case,Php,Variables,Switch Statement,Case,我正在尝试隔离附加到只包含数字的变量的文本。我已经查过了,但我找不到任何有效的,甚至接近我正在尝试做的事情。以下是我想要的: $winning = max(array($var1."Var_One", $var2."Var_Two", $var3."Var_Tree", $var4."Var_Four")); $winning = {the function that I'm missing} 我想找到与最大值变量相伴的字符串,然后在开关情况下使用它,例如: switch ($winning)
$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.";
}
函数getMaxValue(数组$list){
$result=[];
foreach($k=>v){
如果(!isset($result[“value”])| |$result[“value”]<$v){
$result=[
“值”=>v美元,
“key”=>k美元,
];
}
}
返回$result;
}
$WINING=[“变量一”=>$var1,“变量二”=>$var2,“变量三”=>$var3];
$WINING=getMaxValue($WINING);
if(strpos($winning,'Var_One')!==false){
echo“Var_One目前以“$var1.”获胜!”;
}else if(strpos($winning,'Var_Two')!==false){
echo“Var_Two目前以“$var2”获胜!”;
}else if(strpos($winning,'Var_Three')!==false){
echo“Var_Three目前以“$var3”获胜!”;
}否则{
回声“领带”;
}
我想您可能正在寻找这样的产品:
function getMaxValue(array $list)
{
$result = [];
foreach ($list as $k => $v) {
if (!isset($result["value"]) || $result["value"] < $v) {
$result = [
"value" => $v,
"key" => $k,
];
}
}
return $result;
}
结果:
array(2) {
["value"]=>
int(5)
["key"]=>
string(5) "three"
}
因此,您正在查找的函数必须基于
$varX
变量返回数组的最大值?我不完全确定您为什么要这样做。为什么不把文本放在数组键中,把变量放在值中呢?那么你可能会避免整个问题。是的。max()对我来说工作正常,但我似乎无法隔离附加到varX变量的字符串。使用键和值的结果是它返回变量的值,而不是键的名称。在对脚本进行了一些调整后,我完成了这项工作,感谢您的帮助。
$list = ["one" => 2, "two" => 0, "three" => 5, "four" => 4];
var_dump(getMaxValue($list));
array(2) {
["value"]=>
int(5)
["key"]=>
string(5) "three"
}