2012-10-26 79 views
0

我迷失了我正在处理的一个问题。将一个变量从foreach循环传递到php

我有一个带有几个单选按钮和提交按钮的HTML表单。从这个表单中,用户将能够选择其中一个单选按钮,然后点击提交。这将启动PHP脚本,并且脚本应从字符串中提取与单选按钮中选择的数字不匹配的单词。

尽管我对HTML感到满意,但PHP给我带来了一些麻烦。

这里就是我坚持:(例如:“我有一个艰难的时间与PHP脚本。”)

$myTok = strtok($fileContents, "\"[email protected]#$%^&*(1234567890).,:;'_?\n\t-[]~{}"); 

while ($myTok != false){ 

    $myTok = strtok("\"[email protected]#$%^&*(1234567890).,:;'_?\n\t-[]~{}"); 

     foreach ($myTok as $key => $value){ 
      if (strlen($value == 1)){ 
            //not sure how to return the value to the $resultWords variable here 

} 
} 

$resultWords = 

我有一个字符串我使用的strtok()函数删除任何分隔符这是不需要的,这将在我的foreach循环中作为$值的额外字符,但我只想要单词。

因此,通过foreach循环,我正在检查每个标记值以查看该单词是否与用户选择的长度相匹配。这些是我想从字符串中删除的单词。所以,如果用户选择单选按钮4,我的新字符串看起来像“我有一个PHP脚本”。我想用foreach()循环来完成此操作。我最大的困惑是如何将修改过的字符串从循环中返回到变量$ resultWords,或者我的foreach循环设置的开始是否正确。

建议在foreach循环之前使用explode()函数使它成为一个数组吗?对不起,我对此有点新鲜。

+0

你不能在该上下文中“返回”一个值。你必须明白的是[可变范围](http://php.net/manual/en/language.variables.scope.php)。话虽如此,你有没有考虑过使用['str_replace()'](http://php.net/manual/en/function.str-replace.php)? – NullUserException

+0

也许你只是想将它赋值为数组'$ resultWords [] = $ value;'以备将来使用?请注意,您可以将所有代码折叠到'preg_match_all('/ \ w + /',$ input,$ words);' – mario

+0

我欣赏您对问题进行格式化的方式。很好解释和描述。我也很感谢你的努力。 –

回答

1

您可以通过以下方式修改您的脚本。

$resultWords = array(); 
foreach ($myTok as $key => $value){ 

if (strlen($value == 1)){ 

     $resultWords[] = $value;     

    } 
} 

//Make use of the array now. 
foreach($resultWords as $key => $value) { 

    //$value will contain the words 

} 
+0

感谢您的建议! – Creationist