PHP';foreach';数组连接回声


PHP 'foreach' array concatenate echo

以下内容将回显"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';
        } 
}
?>      
<?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';
    } 
}
?>     

试试这个:

<?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,而不是多次重复单个数字。

您可以使用.=赋值运算符将每个字符串添加到一个变量中;

<?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:赋值运算符,和此,PHP:字符串运算符。

希望这能有所帮助。

foreach添加ob_start()之前,您不需要更改代码;在foreach之后添加$wordNumValue=ob_get_clean();