0

假设我有两个从 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;
}

那么如何foreach第一个数组,但结果是将第一个数组中的所需单词替换为数组2中的所需项。示例:数组$names中第一项中的单词编号应替换为数组$numbers中的第一项(First

4

3 回答 3

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] 数组值进行替换。

于 2012-11-12T00:37:35.040 回答
0

像这样的东西?

    foreach ($names as $key => &$item) {
        $item = str_replace ("number", $numbers[$key], $item);
    }
于 2012-11-12T00:51:49.063 回答
0

主题(的第三个参数str_replace)必须是$names[$key]$name

于 2012-11-12T00:34:02.710 回答