我认为数组是
Array
(
[0] => john
[1] => robinson
[2] => 27-08-1980
[3] => football
[4] => pizza
)
我希望通过使用字符串模式来从数组中获取值 示例字符串模式(它也可以使用html代码):
string = "{0} {1} birthday {2} <br /> Hobbie : {3} <br /> favorite : {4}"
结果是
john robinson birthday 27-08-1980
Hobbie : football
favorite : pizza
如何解决
答案 0 :(得分:3)
您可以使用vsprintf()
,但必须将模板占位符更改为%s。
$data = array(...); // your array
$template = '%s %s birthday %s <br /> Hobbie : %s <br /> favorite : %s';
$result = vsprintf($template, $data);
答案 1 :(得分:3)
$data = [
0 => 'john',
1 => 'robinson',
2 => '27-08-1980',
3 => 'football',
4 => 'pizza',
];
$template = "{0} {1} birthday {2} <br /> Hobbie : {3} <br /> favorite : {4}";
$string = preg_replace_callback(
'/\{(\d+)\}/',
function ($matches) use ($data) {
return $data[$matches[1]];
},
$template
);
echo $string;
答案 2 :(得分:0)
preg_replace_callback
会帮助您:
<?php
$array = array('john', 'robinson', '27-09-1980', 'football', 'pizza');
$string = "{0} {1} birthday {2} <br /> Hobbie : {3} <br /> favorite : {4}";
$pattern = "/\{[0-9]\}/";
$newString = preg_replace_callback($pattern, function($matches) use ($array) {
return $array[substr($matches[0],1,1)];
}, $string);
echo $newString;
以上回报: 约翰罗宾逊生日27-09-1980
霍比:足球
最爱:披萨
答案 3 :(得分:0)
$arr = array('john','robinson','27-08-1980', 'football','pizza');
$str = "{$arr[0]} {$arr[1]} birthday {$arr[2]} <br /> Hobbie : {$arr[3]} <br /> favorite : {$arr[4]}";
echo $str;
为什么不试试这个