PHP'foreach'数组连接echo

时间:2014-09-28 22:32:15

标签: php arrays foreach

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

4 个答案:

答案 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();