0

pre_gmatchから取得した2つの配列があるとしましょう。

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);

取得した配列のアイテム数は常に同じです。したがって、これが何が起こっているかを取得するためのコードであり、最初の配列のすべての項目に1つの繰り返し単語があります(この単語はこの場合は数字です)。

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

したがって、最初の配列をforeachする方法ですが、結果として、最初の配列の必要な単語を配列2の必要な項目に置き換えます。例:配列$namesの最初の項目の単語番号を配列$numbersの最初の項目に置き換える必要があります

4

2 に答える 2

1

これを少し単純化して、方程式からpreg_matchを取り除いてみましょう。まず、2つの別々のアレイから始めます。

$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.
)
于 2012-11-12T04:28:11.217 に答える
0

たぶん、最初のarray_replace()を呼び出して、最初の配列の値を2番目の配列の値に置き換えると、必要な処理が実行されます。

お役に立てれば。

于 2012-11-12T04:45:34.123 に答える