2014-09-28 31 views
2

以下將回顯「12334」。PHP'foreach'數組連接回聲

但是,我想將「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

非常感謝你們,這個伎倆。非常感謝。 – 2014-09-28 22:45:59

+0

如果它可以幫助你**接受**最好的答案.. – Sky 2014-09-28 22:48:50

回答

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'; 
    } 
} 
?>  
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的I,會做這個:

<?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代替呼應單數字幾次。

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

希望這會有所幫助。

+0

嗨@Hemn貝克,如果這或任何答案已解決您的問題,請考慮[接受它](http://meta.stackexchange.com/q/ 5234/179419)點擊複選標記。這向更廣泛的社區表明,您已經找到了解決方案,併爲答覆者和您自己提供了一些聲譽。沒有義務這樣做。 – worldofjr 2014-09-29 16:45:46

-1

在foreach添加ob_start()之前,您不需要更改代碼。 和foreach後添加$ wordNumValue = ob_get_clean();

+0

這可能是我見過的最大的大錘,可以破解現存最​​小的堅果。 – worldofjr 2014-09-29 03:42:15