ここでの他の回答はあなたの質問を誤解していると思います。
fetchLinks()
結果として配列を返します。この結果を既存の$link_repository
変数に単純に追加すると、その変数は多次元配列、つまり配列の配列になります。たとえば、最初の呼び出しで がfetchLinks()
返さarray(1,2)
れ、2 番目の呼び出しで が返された場合、次のような変数が返されarray(3,4)
ます。$link_repository
array(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_merge
user_call_func_array()
+
返されるデータの種類に応じて、配列結合演算子 を使用して配列を結合したい場合があることに注意してくださいfetchLinks
。その演算子がどのように機能するかについてはこちらを参照してください。との違いについてはこちらarray_merge
を参照してください。