以下将回显“12334”。
但是,我希望将“12334”放在变量中说$ wordNumValue。 我知道这可能是一件简单的事情,但对我来说并非如此。任何帮助深表感谢。
<?php
$msg ="hello";
$arrEn = str_split($msg);
foreach ($arrEn as &$value) {
if ($value == 'h') {
echo "1";
} elseif ($value == 'e') {
echo "2";
} elseif ($value == 'l') {
echo "3";
} elseif ($value == 'o') {
echo "4";
} else {
echo 'NULL';
}
}
?>
答案 0 :(得分:2)
<?php
$msg ="hello";
$arrEn = str_split($msg);
$wordNumValue = "";
foreach ($arrEn as &$value) {
if ($value == 'h') {
echo "1";
$wordNumValue .= "1";
} elseif ($value == 'e') {
echo "2";
$wordNumValue .= "2";
} elseif ($value == 'l') {
echo "3";
$wordNumValue .= "3";
} elseif ($value == 'o') {
echo "4";
$wordNumValue .= "4";
} else {
echo 'NULL';
}
}
?>
答案 1 :(得分:2)
试试这个:
<?php
$msg ="hello";
$arrEn = str_split($msg);
$wordNumValue = '';
foreach ($arrEn as &$value) {
if ($value == 'h') {
echo "1";
$wordNumValue .= "1";
} elseif ($value == 'e') {
echo "2";
$wordNumValue .= "2";
} elseif ($value == 'l') {
echo "3";
$wordNumValue .= "3";
} elseif ($value == 'o') {
echo "4";
$wordNumValue .= "4";
} else {
echo 'NULL';
}
}
但是,由于你有很多elseif
我,我会这样做:
<?php
$msg ="hello";
$arrEn = str_split($msg);
$wordNumValue = '';
foreach ($arrEn as &$value) {
switch ($value) {
case "h":
$wordNumValue .= "1";
break;
case "e":
$wordNumValue .= "2";
break;
case "l":
$wordNumValue .= "3";
break;
case "o":
$wordNumValue .= "4";
break;
default:
echo 'NULL';
}
}
echo $wordNumValue;
最后我回复$wordNumValue
而不是多次回应单个数字。
答案 2 :(得分:1)
您可以使用.=
赋值运算符将每个字符串添加到变量中;
<?php
$msg ="hello";
$arrEn = str_split($msg);
foreach ($arrEn as &$value) {
if ($value == 'h') {
$wordNumValue .= "1";
} elseif ($value == 'e') {
$wordNumValue .= "2";
} elseif ($value == 'l') {
$wordNumValue .= "3";
} elseif ($value == 'o') {
$wordNumValue .= "4";
}
}
?>
您不需要最终else
。 请参阅此 PHP: Assignment Operators,以及,PHP: String Operators。
希望这有帮助。
答案 3 :(得分:-1)
在foreach添加ob_start()之前,您无需更改代码; 并在foreach之后添加$ wordNumValue = ob_get_clean();