是否有一些本地php接收字符串和数组作为参数,并在字符串中用它们各自的值替换数组的索引?
类似于:
$myString = "{days} days left for {holiday}";
$params = array(
"days" => 275,
"holiday" => "Christmas"
);
echo _some_function($myString, $params);
//Outputs: "275 days left for Christmas"
这应该适用于您:
(这里我只是先在键周围添加分隔符,然后只使用strtr()
来替换值)
<?php
$myString = "{days} days left for {holiday}";
$delimiters = ["{", "}"];
$params = [
"days" => 275,
"holiday" => "Christmas"
];
function someCrazyFunction($myString, $params, $delimiters) {
foreach($params as $k => $v) {
$params[$delimiters[0] . $k . $delimiters[1]] = $v;
unset($params[$k]);
}
return strtr($myString, $params);
}
echo someCrazyFunction($myString, $params, $delimiters);
?>
输出:
275 days left for Christmas
_some_function($myString, $params){
foreach($params as $k=>$v)
$myString = str_replace("{".$k."}",$v,$mString);
return $myString;
}
-不要问:如果"天"有一些像"假日"这样的价值,会怎么样?)
感谢大家的回答。根据@Rizier123和@superduperawesomephp专家评论:
$myString = "{days} days left for {holiday}";
$params = array(
"days" => 275,
"holiday" => "Christmas"
);
$indexes = array_map(function($v){
return '{'.$v.'}';
}, array_keys($params));
echo str_replace($indexes, $params, $myString);