如何在foreach语句中调用函数


how do you call a function inside a foreach statement

我正试图使用foreach语句来运行一个函数,该函数使用正则表达式preg_replace。有人能帮忙吗,因为我的方法不起作用。。

$reg_sent is an array
function reg_sent($i){
  $reg_sent = "/[^A-Za-z0-9.,'n'r ]/";
  return preg_replace($reg_sent, '', $i);
}
foreach($reg_sent as $key=>$value){
  $value = reg_sent($value);
}

检查array_map。

$reg_sent = array_map("reg_sent", $reg_sent);

这将在数组的每个单元格上调用reg_sent,并返回一个值已修改的新数组。您可以用上述内容替换您所述的foreach块。

您不会受到任何影响,因为foreach循环需要通过引用访问元素:

foreach($reg_sent as $key => &$value)
{
    $value = reg_sent($value);
}

注意,我在$value之前添加了循环中的&。否则,foreach值的副本进行操作,当在循环中修改该副本时,您将永远不会在循环外看到该值。

您需要通过引用传递变量:

foreach($reg_sent as $key=>&$value){

否则,您将对仅在循环中保留其值的本地副本进行操作。

function reg_sent($i){ 
    $reg_sent = "/[^A-Za-z0-9.,'n'r ]/"; 
    return preg_replace($reg_sent, '', $i); 
} 
foreach($reg_sent as $key => &$value){ 
    $value = reg_sent($value); 
}
unset($value);
var_dump($reg_sent);