我有一个带有多个数字的变量存储为字符串:
$string = "1, 2, 3, 5";
和包含其他存储值的多维数组:
$ar[1] = array('title#1', 'filename#1');
$ar[2] = array('title#2', 'filename#2');
$ar[3] = array('title#3', 'filename#3');
$ar[4] = array('title#4', 'filename#4');
$ar[5] = array('title#5', 'filename#5');
我的目标是根据相关的数组键,用$string
数组中的相关切片替换$ar
中的数字。上面的例子我应该得到:
$string = "title#1, title#2, title#3, title#5";
我尝试遍历$ar
并在$string
上执行str_replace,但$string
的最终值始终是相关数组的最新标题。
foreach($ar as $key => $arr){
$newString = str_replace($string,$key,$arr[0]);
}
如何解决这个问题?
由于
答案 0 :(得分:2)
你可以通过concat每次str_replace
来做,或者你可以通过爆炸和连续来做。
尝试这样:
$string = "1, 2, 3, 5";
$arrFromString = explode(',', $string);
$newString = '';
foreach($ar as $intKey => $arr){
foreach($arrFromString as $intNumber){
if($intKey == $intNumber) {
$newString .= $arr[0].',';
}
}
}
$newString = rtrim($newString,',');
echo $newString;
输出:
title#1,title#2,title#3,title#5
答案 1 :(得分:0)