Pri pohľade na prechádzanie po rade adries URL a vloženie každého kľúčového slova z druhého poľa do každej adresy URL, ale nedokáže sa vyrovnať s pochopením polí. Napríklad:
$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="),
Chcel by som vyššie uvedené na výstup:
google.co.uk/#hl=en&q=Keyword+1
google.co.uk/#hl=en&q=Keyword+2
google.co.uk/#hl=en&q=Keyword+3
bing.com/search?q=Keyword+1
bing.com/search?q=Keyword+2
bing.com/search?q=Keyword+3
uk.search.yahoo.com/search?vc=&p=Keyword+1
uk.search.yahoo.com/search?vc=&p=Keyword+2
uk.search.yahoo.com/search?vc=&p=Keyword+3
Existuje efektívny spôsob, ako to dosiahnuť? :)
odpovede:
0 pre odpoveď č. 1Môžete to urobiť takto:
$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);
výsledok:
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 pre odpoveď č. 2
foreach($url as $currenturl)
{
foreach($key as $currentkey)
{
echo $currenturl . $currentkey . "n";
}
}
skúste to
0 pre odpoveď č. 3
Najskôr chcete prepnúť na slučku $url
pole, potom pre každú položku v priečinku $url
poľa, chcete tiež vytvoriť slučku cez všetky kľúče v priečinku $key
pole a pripojte ich k položke, z ktorej ste si vybrali $url
,
foreach ($url as $u)
{
foreach ($key as $k)
{
echo $u.$k."n";
}
}
0 pre odpoveď č. 4
To, čo popisujete, je zovšeobecnenie vonkajšieho produktu.
Bolo by zaujímavejšie definovať funkciu vyššieho rádu pre toto:
/**
* 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")));
dodáva:
Pole ( [0] => Pole ( [0] => a1 [1] => a2 [2] => a3 ) [1] => Pole ( [0] => b1 [1] => b2 [2] => b3 ) [2] => Pole ( [0] => C1 [1] => c2 [2] => c3 ) )
Viď Mathematica Outer
.