假设我有两个来自pre_gmatch的数组:
preg_match_all('#<div class="cloud_flow_big">(.*?)</div>#is', $mystring, $names, PREG_SET_ORDER);
preg_match_all('#<div class="bgframe(.*?)</div></div>#is', $mystring, $numbers, PREG_SET_ORDER);
获取数组中的项目数总是相同的。所以这里是获取正在发生的事情的代码,并且在第一个数组的所有项目中都有一个重复的单词(在这种情况下,这个单词是数字):
foreach ($names as $key => $name) {
$i++;
$nameclean = str_replace ("number", $numbers[$key], $names[$key]);
echo $nameclean;
}
那么如何预习第一个数组,但结果是将第一个数组中所需的单词替换为数组2中的所需项。示例:数组$ name中的第一项中的数字应替换为数组$ numbers中的第一项(第一)
答案 0 :(得分:0)
主题(str_replace
的第3个参数)必须是$names[$key]
或$name
答案 1 :(得分:0)
你很亲密,我在这里为你修好了:
<?PHP
$names = array('John is number', 'Tom is number', 'Ben is number', 'Tony is number', 'Peter is number');
$numbers = array('First', 'Second', 'Third', 'Fourth', 'Fifth');
foreach ($names as $key => $name) {
$nameclean = str_replace ("number", $numbers[$key], $names[$key]);
echo $nameclean . "<br />";
}
?>
您的错误发生在str_replace()中。您正在使用数组$ name [$ key]进行替换,这只是名称本身。您想要从$ names [$ key]数组值进行替换。
答案 2 :(得分:0)
这样的东西?
foreach ($names as $key => &$item) {
$item = str_replace ("number", $numbers[$key], $item);
}