按索引用数组值替换字符串参数

Replace string parameters with an array value by index

是否有一些本机 php 接收字符串和数组作为参数并用字符串中各自的值替换数组的索引?

类似于:

$myString = "{days} days left for {holiday}";
$params = array(
    "days" => 275,
    "holiday" => "Christmas"
);
echo _some_function($myString, $params);
//Outputs: "275 days left for Christmas"
_some_function($myString, $params){
   foreach($params as $k=>$v)
        $myString = str_replace("{".$k."}",$v,$mString);
   return $myString;
}

-"days" 的 ask:What 没有类似 "holiday" 的值;)

这应该适合你:

(这里我只是先在键周围添加分隔符,然后使用 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

谢谢大家的回答。 根据@Rizier123 和@superduperawesomephpexpert 评论:

$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);