foreach两个阵列,与其他物品更换一个物品



,说我有两个阵列从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);

在获得数组中计数的项目始终相同。因此,这是获得正在发生的事情的代码,并且在所有第一个数组的所有项目中都有一个重复的单词(在这种情况下,这个单词是 number ):

foreach ($names as $key => $name) {
    $i++;
$nameclean = str_replace ("number", $numbers[$key], $names[$key]);
echo $nameclean;
}

因此,如何使用第一个数组中的第一个数组中的"替换"单词。来自Array $数字的第一项

让我们简化一点,然后将preg_match从方程式中取出。我们只需从两个单独的数组开始。

$numbers = array(
  "I like having number eyes.",
  "there are number days in a week,",
  "A car normally has number wheels.",
);
$names = array( "two", "seven", "four");

使用foreach回答您的问题,您可以执行以下

$i = 0;
foreach ($numbers as $number) {
  $numbers[$i] = str_replace ("number", $names[$i], $number);
  $i++;
}

但是,这将在for循环中更好地工作

for ($i = 0; $i < count($numbers); $i++) {
  $numbers[$i] = str_replace ("number", $names[$i], $numbers[$i]);
}

这两者的结果是

Array
(
    [0] => I like having two eyes.
    [1] => there are seven days in a week,
    [2] => A car normally has four wheels.
)

也许可以呼叫第一个 array_replace()用第二个数组中的第一个数组替换第一个数组的值将执行您想要的。

希望这会有所帮助。

最新更新