用数组 php 中的字符串列表替换字符串
Replace a string with list of string from an array php
我有一个 php 文件,其中包含像
这样的代码块
$error_arr = array();
foreach{
try{
INSERT DATA
}catch(Exception $e){
$error_arr = $e;
}
}
$data_arr = [
'filename' => $filename,
'user_name' => $user_name,
'error' => $error_arr
];
此处,异常将被捕获并存储在 $error_arr 中,然后存储在 data_arr['error'].
中
在邮件文件中,我将替换为
$array_from_to = array (
'[[USER_NAME]]' => $this->data_arr['user_name'],
'[[FILENAME]]' => $this->data_arr['filename'],
'[[ERROR]]' => $this->data_arr['error']
);
$data->content = str_replace(array_keys($array_from_to), $array_from_to, $data->content);
{{OTHER STUFF of mail content}}
[[ERROR]]
{{OTHER STUFF of mail content}}
现在,在这个错误块中,我想显示数组中的所有错误。因为这个错误数可以是从 0 到任何数字。但是,目前它只显示最后一个错误。如何,我可以将所有错误显示为有序列表吗?
您需要进行 2 处更改,第一个是存储错误数组 - 您目前每次都覆盖错误...
$error_arr[] = $e;
第二个是如何将错误数组构建成字符串来替换,一个简单的方法是使用implode()
...
'[[ERROR]]' => implode(",", $this->data_arr['error'])
您可能想要更改它的显示方式,但这只会提供以逗号分隔的错误列表。
更新:
如果你想列出错误,你可以添加一个简单的 foreach()
循环来构建一个字符串,其格式为你之后...
$error = '';
foreach ( $data_arr['error'] as $key => $text ) {
$error .= ($key+1)." - ". $text.PHP_EOL;
}
然后
'[[ERROR]]' => $error
我有一个 php 文件,其中包含像
这样的代码块$error_arr = array();
foreach{
try{
INSERT DATA
}catch(Exception $e){
$error_arr = $e;
}
}
$data_arr = [
'filename' => $filename,
'user_name' => $user_name,
'error' => $error_arr
];
此处,异常将被捕获并存储在 $error_arr 中,然后存储在 data_arr['error'].
中在邮件文件中,我将替换为
$array_from_to = array (
'[[USER_NAME]]' => $this->data_arr['user_name'],
'[[FILENAME]]' => $this->data_arr['filename'],
'[[ERROR]]' => $this->data_arr['error']
);
$data->content = str_replace(array_keys($array_from_to), $array_from_to, $data->content);
{{OTHER STUFF of mail content}}
[[ERROR]]
{{OTHER STUFF of mail content}}
现在,在这个错误块中,我想显示数组中的所有错误。因为这个错误数可以是从 0 到任何数字。但是,目前它只显示最后一个错误。如何,我可以将所有错误显示为有序列表吗?
您需要进行 2 处更改,第一个是存储错误数组 - 您目前每次都覆盖错误...
$error_arr[] = $e;
第二个是如何将错误数组构建成字符串来替换,一个简单的方法是使用implode()
...
'[[ERROR]]' => implode(",", $this->data_arr['error'])
您可能想要更改它的显示方式,但这只会提供以逗号分隔的错误列表。
更新:
如果你想列出错误,你可以添加一个简单的 foreach()
循环来构建一个字符串,其格式为你之后...
$error = '';
foreach ( $data_arr['error'] as $key => $text ) {
$error .= ($key+1)." - ". $text.PHP_EOL;
}
然后
'[[ERROR]]' => $error