我试图循环所有名称$names并使用正则表达式转换它们.转换很好,但我无法找到循环遍历每个名称的方法.
目前,只返回一个值:"名称:COOPE,塞巴斯蒂安"
<!DOCTYPE html>
<html>
<head>
<title>PHP Arrays</title>
</head>
<body>
<h1>PHP Arrays</h1>
<?php
$names = array("Sebastian Coope", "Andrew Craig", "Prof Karl Tuyls", "Dr Ullrich Hustadt", "Dr Michele Zito");
foreach($names as $name){
function rewriteText($match){
$firstName = $match[2];
$surname = $match[3];
return strtoupper($surname).', '.$firstName;
}
$altered = preg_replace_callback(
"/(Mr|Ms|Mrs|Dr|Prof)?\s*(\w+)\s+(\w+)/",
"rewriteText",
$name);
echo "Name: $altered<br>\n";
}
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
致命错误:无法在第13行的/path/to/file.php中重新声明rewriteText()(之前在/path/to/file.php:13中声明)
只需在foreach循环外定义您的函数
$names = array("Sebastian Coope", "Andrew Craig", "Prof Karl Tuyls", "Dr Ullrich Hustadt", "Dr Michele Zito");
function rewriteText($match){
$firstName = $match[2];
$surname = $match[3];
return strtoupper($surname).', '.$firstName;
}
foreach($names as $name) {
$altered = preg_replace_callback(
"/(Mr|Ms|Mrs|Dr|Prof)?\s*(\w+)\s+(\w+)/",
"rewriteText",
$name);
echo "Name: $altered<br>\n";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |