2010-07-26 84 views
0

尋找循環訪問一個URL數組,並將每個關鍵字從第二個數組注入到每個URL中,但無法理解數組。例如:通過第二個數組循環陣列

$key = array("Keyword+1", "Keyword+2", "Keyword+3"), 
$url =array("google.co.uk/#hl=en&q=", "bing.com/search?q=","uk.search.yahoo.com/search?vc=&p="), 

我想上述輸出:

google.co.uk/#hl=en & Q =關鍵字+ 1
google.co.uk/#hl = EN & q =關鍵字+ 2
google.co.uk/#hl=en & q =關鍵字+ 3
bing.com/search?q=Keyword+1
bing.com/search?q=Keyword +2
bing.com/search?q=K eyword + 3
uk.search.yahoo.com/search?vc= & P =關鍵字+ 1
uk.search.yahoo.com/search?vc= & P =關鍵字+ 2
uk.search.yahoo .com/search?vc = & p =關鍵字+ 3

是否有一種有效的方法來實現這一目標? :)

+0

你可能會從http://stackoverflow.com/questions/2246493/concatenate-values-of-n-arrays-in-php看到一些好處 – 2010-07-26 20:02:47

回答

0

這裏是你如何能做到這一點:

$keys = array("Keyword+1", "Keyword+2", "Keyword+3"); 
$urls =array("google.co.uk/#hl=en&q=", "bing.com/search?q=","uk.search.yahoo.com/search?vc=&p="); 

$my_array = array(); 

foreach($urls as $url) 
{ 
    foreach($keys as $key) 
    { 
     $my_array[] = $url . $key; 
    } 
} 

print_r($my_array); 

結果:

Array 
(
    [0] => google.co.uk/#hl=en&q=Keyword+1 
    [1] => google.co.uk/#hl=en&q=Keyword+2 
    [2] => google.co.uk/#hl=en&q=Keyword+3 
    [3] => bing.com/search?q=Keyword+1 
    [4] => bing.com/search?q=Keyword+2 
    [5] => bing.com/search?q=Keyword+3 
    [6] => uk.search.yahoo.com/search?vc=&p=Keyword+1 
    [7] => uk.search.yahoo.com/search?vc=&p=Keyword+2 
    [8] => uk.search.yahoo.com/search?vc=&p=Keyword+3 
) 
2
foreach($url as $currenturl) 
{ 
    foreach($key as $currentkey) 
    { 
     echo $currenturl . $currentkey . '\n'; 
    } 
} 

試試這個

0

您首先要遍歷所有的$url陣列,那麼對於$url陣列中的每個項目,您還需要遍歷所有的$key陣列中的所有鍵和它們附加你從$url挑選的項目,

foreach ($url as $u) 
{ 
    foreach ($key as $k) 
    { 
     echo $u.$k."\n"; 
    } 
} 
0

什麼你所描述的是外產品的推廣。

這將是更有趣的定義高階函數此:

/** 
* A generalization of the outer product, forming all the possible 
* combinations of the elements of the two arrays and feeding them 
* to $f. 
* The keys are disregarded 
**/ 
function array_outer($f, array $array1, array $array2) { 
    $res = array(); 
    foreach ($array1 as $e1) { 
     $cur = array(); 
     foreach ($array2 as $e2) { 
      $cur[] = $f($e1, $e2); 
     } 
     $res[] = $cur; 
    } 
    return $res; 
} 

$f = function ($a,$b) { return $a.$b; }; 
print_r(array_outer($f, array("a","b","c"), array("1", "2", "3"))); 

給出:

 
Array 
(
    [0] => Array 
     (
      [0] => a1 
      [1] => a2 
      [2] => a3 
     ) 

    [1] => Array 
     (
      [0] => b1 
      [1] => b2 
      [2] => b3 
     ) 

    [2] => Array 
     (
      [0] => c1 
      [1] => c2 
      [2] => c3 
     ) 

) 

見Mathematica的Outer