用str_replace预告两个数组

时间:2012-11-12 00:22:19

标签: php arrays foreach str-replace

假设我有两个来自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中的第一项(第一

3 个答案:

答案 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);
    }