gpt4 book ai didi

php - 用第二个数组中的值替换第一个数组中的字符串

转载 作者:可可西里 更新时间:2023-11-01 00:11:56 24 4
gpt4 key购买 nike

出于某种原因,我正在为此苦苦挣扎。

我有以下 2 个数组,我需要从 $img 数组中获取数组值并将它们按顺序插入到 $text 数组中,附加/替换 %img_ 标签,如下所示:

$text = array(
0 => "Bunch of text %img_ %img_: Some more text blabla %img_",
1 => "More text %img_ blabla %img_"
);

$img = array("BLACK","GREEN","BLUE", "RED", "PINK");

我希望我的 $text 数组像这样结束:

$text = array(
0 => "Bunch of text %img_BLACK %img_GREEN: Some moretext blabla %img_BLUE",
1 => "More text %img_RED blabla %img_PINK"
);

注意:$img 数组中的项目数量会有所不同,但始终与 $text 数组中的 %img_ 数量相同。

最佳答案

这是您可以使用的一种方法,使用 preg_replace_callback用一个类来包装跟踪 $img 数组中要使用的替换字符串的详细信息:

class Replacer
{
public function __construct($img)
{
$this->img=$img;
}

private function callback($str)
{
//this function must return the replacement string
//for each match - we simply cycle through the
//available elements of $this->img.

return '%img_'.$this->img[$this->imgIndex++];
}

public function replace(&$array)
{
$this->imgIndex=0;

foreach($array as $idx=>$str)
{
$array[$idx]=preg_replace_callback(
'/%img_/',
array($this, 'callback'),
$str);
}
}
}

//here's how you would use it with your given data
$r=new Replacer($img);
$r->replace($text);

关于php - 用第二个数组中的值替换第一个数组中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1582396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com