Zadejte hledaný výraz...

Provázání hodnot z polí

Mgr. Ivo Toman
verified
rating uzivatele
(7 hodnocení)
17. 11. 2008 23:27:33
Už jsem se na to ptal v diskusi jakpsatweb, ale nenašel jsem odpověď, tak snad zde bude někdo vědět. Mám následující pole:
Array
(
=> Array
(
=> Velikost
=> Array
(
=> 10
=> 13
=> 12
)
)
=> Array
(
=> Přední vidlice
=> Array
(
=> pevná, ocelová
=> odpružená, ocelová
)
)
=> Array
(
=> Barva
=> Array
(
=> 350 černá
=> 300 oranžová
=> 250 žlutá
)
)
)
a potřeboval bych teď ty pole propojit a zobrazit všechny možné jedinečné varianty. Např.
velikost - 10 / Přední vidlice - pevná, ocelová / Barva - 350 černá
velikost - 10 / Přední vidlice - pevná, ocelová / Barva - 300 oranžová
velikost - 10 / Přední vidlice - pevná, ocelová / Barva - 250 žlutá
velikost - 10 / Přední vidlice - odpružená, ocelová / Barva - 350 černá
velikost - 10 / Přední vidlice - odpružená, ocelová / Barva - 300 oranžová
velikost - 10 / Přední vidlice - odpružená, ocelová / Barva - 250 žlutá
velikost - 13 / Přední vidlice - pevná, ocelová / Barva - 350 černá
velikost - 13 / Přední vidlice - pevná, ocelová / Barva - 300 oranžová
velikost - 13 / Přední vidlice - pevná, ocelová / Barva - 250 žlutá
velikost - 13 / Přední vidlice - odpružená, ocelová / Barva - 350 černá
velikost - 13 / Přední vidlice - odpružená, ocelová / Barva - 300 oranžová
velikost - 13 / Přední vidlice - odpružená, ocelová / Barva - 250 žlutá
velikost - 12 / Přední vidlice - pevná, ocelová / Barva - 350 černá
velikost - 12 / Přední vidlice - pevná, ocelová / Barva - 300 oranžová
velikost - 12 / Přední vidlice - pevná, ocelová / Barva - 250 žlutá
Poradí mi někdo, jak to pole zpracovat? Zkoušel jsem 2 násobný foreach, ale nedaří se mi to nakombinovat.
17. 11. 2008 23:27:33
https://webtrh.cz/diskuse/provazani-hodnot-z-poli#reply161985
Milan Kryl
verified
rating uzivatele
(26 hodnocení)
18. 11. 2008 08:24:58
Dejme tomu, že máš celé pole uložené v proměnné $v, protom to vypíšeš následovně:
foreach ($v as $v1) {
foreach ($v as $v2) {
foreach ($v as $v3) {
echo $v.' '.$v1.' / '.$v.'- '.$v2.' / '.$v.' '.$v3."n";
}
}
}
18. 11. 2008 08:24:58
https://webtrh.cz/diskuse/provazani-hodnot-z-poli#reply161984
Mgr. Ivo Toman
verified
rating uzivatele
(7 hodnocení)
18. 11. 2008 09:19:34
Obdoba mě také napadla, bohužel dopředu neznám ani počet těchto polí ani jejich index. Přes noc mě ale napadlo možné řešení, tak ho jdu vyzkoušet.
Děkuji ale za ochotu.
18. 11. 2008 09:19:34
https://webtrh.cz/diskuse/provazani-hodnot-z-poli#reply161983
Mgr. Ivo Toman
verified
rating uzivatele
(7 hodnocení)
18. 11. 2008 10:29:59
Hm, tak zase nic, sakra. Napadá tě Milane, jak ty vnořené foreach udělat, když nebudu předem znát kolik jich bude (vytahuji to z db)
18. 11. 2008 10:29:59
https://webtrh.cz/diskuse/provazani-hodnot-z-poli#reply161982
Milan Kryl
verified
rating uzivatele
(26 hodnocení)
18. 11. 2008 11:09:41
budeš si to muset meziukládat do nějakého pole, kam vždycky budeš přidávat další typ položky podle požadovaného formátu.
18. 11. 2008 11:09:41
https://webtrh.cz/diskuse/provazani-hodnot-z-poli#reply161981
Mgr. Ivo Toman
verified
rating uzivatele
(7 hodnocení)
18. 11. 2008 11:25:46
Tak jsem se nakonec vrátil k původnímu nápadu, zkombinoval to s Milanovým řešením a dostal snad správný výsledek :D
Díky krylm ještě jednou.
Jo a kdyby to někdo potřeboval
$i = 0; $j = 0; $m = 0;
$vysledek = array(); $hotovo = array();
foreach($varianty AS $varianta) {
$m=0; //nový průchod cyklem samotných parametrů
foreach($varianta as $k => $v) {
if($i == 0) {
$hotovo = $v;
$hotovo = $k;
}
else {
foreach($vysledek as $prev) { //projdu všechny předešlé výsledky
$hotovo = $prev . "/" . $v; //k předešlému výsledku přidám aktuální hodnotu a uložím do nového pole
$hotovo = $prev . "_" . $k; //to samé i s klíči (id)
}
}
}
$vysledek = $hotovo; //jako výsledek zaznamenám nové pole
$i++;
}
18. 11. 2008 11:25:46
https://webtrh.cz/diskuse/provazani-hodnot-z-poli#reply161980
Milan Kryl
verified
rating uzivatele
(26 hodnocení)
19. 11. 2008 15:52:26
Jj, presne tak jsem to myslel. Dik za rep :)
19. 11. 2008 15:52:26
https://webtrh.cz/diskuse/provazani-hodnot-z-poli#reply161979
Pro odpověď se přihlašte.
Přihlásit