0

やあみんな私は次のコードを持っています

$link_repository=array();

foreach ($links as $value) {
   $link_repository=$crawler->fetchLinks($value);
   print_r($link_repository);
   echo 'Count:'.count($link_repository);
   echo '<br><br>';
  }

リンクごとに、fetchLinks関数は要素の配列を返します。各リンクの関数によって返された配列を 1 つの配列に追加したいと考えています。どうすればいいですか

ありがとう

4

4 に答える 4

0

ここでの他の回答はあなたの質問を誤解していると思います。

fetchLinks()結果として配列を返します。この結果を既存の$link_repository変数に単純に追加すると、その変数は多次元配列、つまり配列の配列になります。たとえば、最初の呼び出しで がfetchLinks()返さarray(1,2)れ、2 番目の呼び出しで が返された場合、次のような変数が返されarray(3,4)ます。$link_repositoryarray(array(1,2), array(3,4)

あなたが実際に求めていると思うのは、すべての呼び出しの結果がfetchLinks()結合して 1 次元配列を形成するようにする方法です。上記の例では、 の最終結果を に$link_repositoryする必要がありますarray(1,2,3,4)

これが正しければ、次のように配列をマージしますarray_merge

$link_repository=array();
foreach ($links as $value) {
   $link_repository= array_merge($link_repository, $crawler->fetchLinks($value));
}

パフォーマンスのトレードオフについてはわかりませんがarray_merge、最後まで延期することをお勧めします。fetchLinksで各配列を独自の要素として追加すると、 を使用し$link_repositoryて配列内のすべての要素を一度に渡すことで、それらを一度にすべてマージできます。array_mergeuser_call_func_array()

+返されるデータの種類に応じて、配列結合演算子 を使用して配列を結合したい場合があることに注意してくださいfetchLinks。その演算子がどのように機能するかについてはこちらを参照てください。との違いについてはこちらarray_mergeを参照してください。

于 2013-01-20T18:38:17.087 に答える
0
$link_repository=array();

foreach ($links as $value) {
    array_push($link_repository,$crawler->fetchLinks($value));
    //$link_repository[]=$crawler->fetchLinks($value);
    //$link_repository=$crawler->fetchLinks($value); I wouldn't use this
    print_r($link_repository);
    echo 'Count:'.count($link_repository).'<br><br>';
}
return $link_repository;

配列にデータを入力する 2 つの方法を提供しました。どれが一番いいのかわかりませんでした。

于 2013-01-20T15:24:11.777 に答える
0

私が推測しなければならない場合:

$link_repository = array();

foreach ($links as $value) {
   $temp = $crawler->fetchLinks($value); //Add to array
   $link_repository = array_merge((array)$link_repository, (array)$temp);
   print_r($link_repository);
   echo 'Count:'.count($link_repository);
   echo '<br><br>';
  }
}
于 2013-01-20T15:22:41.517 に答える
0

これを試して:

$link_repository[] = $crawler->fetchLinks($value);
于 2013-01-20T15:22:44.570 に答える