Dvě pole, jedno foreach – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Dvě pole, jedno foreach – PHP – Fórum – Programujte.comDvě pole, jedno foreach – PHP – Fórum – Programujte.com

 

Forest
~ Anonymní uživatel
167 příspěvků
5. 6. 2013   #1
-
0
-

Ahoj, lze procházet dvě pole v jednom foreach? Pokud ano, jak? Díky moc   

Nahlásit jako SPAM
IP: 92.62.230.–
Forest
~ Anonymní uživatel
167 příspěvků
5. 6. 2013   #2
-
0
-

Pokud to použiju takto:

foreach($_SESSION["polozky"] as $ip => $polozky)
{
foreach($_SESSION["kusy"] as $kusy)
{
echo "[".$ip."] ".$polozky." <".$kusy."> <br />";
}
}

tak se mi každý index pole "polozky" vypíše 2x, tudíž nevím, jak na to ...

Nahlásit jako SPAM
IP: 92.62.230.–
peter
~ Anonymní uživatel
4014 příspěvků
5. 6. 2013   #3
-
0
-

Nerozumim. Kazdy index polozky se vypise tolikrat, kolik je kusu v $_SESSION["kusy"].

foreach(array(1,2,3,4,5) as $ip => $polozky)
{
foreach(array(1,2,3) as $kusy)
{
echo "[".$ip."] ".$polozky." <".$kusy."> <br />";
}
}

Vypise se celkem 5x3 radku 3x polozky. 11,12,13, 21,22,23, ... 51,52,53

Nahlásit jako SPAM
IP: 193.84.207.–
Forest
~ Anonymní uživatel
167 příspěvků
5. 6. 2013   #4
-
0
-

#3 peter
Ne, takhle to nechci. Potřebuju, aby se každý index v poli "položky" vypsal normálně jednou ... ale zároveň potřebuju do jednoho echa vypsat hodnotu z pole "kusy", kde index bude stejný

takže:  

echo "[".$_SESSION["polozky"][0]."], <".$_SESSION["kusy"][0].">";

s tím, že 0 je natvrdo a já potřebuju takto vypsat všechny pomocí foreach

Nahlásit jako SPAM
IP: 92.62.230.–
Markaos0
Návštěvník
5. 6. 2013   #5
-
0
-

Pokud nemáš v plánu mazat různé indexy, tak stačí použít while.
$i = 0;
while(isset($kusy[$i]). && isset($polozky[$i])){
echo $kusy[$i]." - ".$polozky[$i];
$i++;
}

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 89.24.21.–
Linux is like a wigwam
No gates, no windows, apache inside.
Forest
~ Anonymní uživatel
167 příspěvků
5. 6. 2013   #6
-
0
-

#5 Markaos
Musel jsem to trochu upravit, ale pomohl jsi, diky :-)

Mám to  teď takto:

$i = 0;
while(isset($_SESSION["polozky"][$i]) && isset($_SESSION["kusy"][$i]))
{
echo "Položka ".$_SESSION["polozky"][$i].", Kusy: ".$_SESSION["kusy"][$i]."<br />";
$i++;
}

A teď už jen poslední věc. Jak zjistit, jaký je to index, když to mám pomocí while a ne foreach?

Nahlásit jako SPAM
IP: 92.62.230.–
Forest
~ Anonymní uživatel
167 příspěvků
5. 6. 2013   #7
-
0
-

To je ta hodnota $i, ne? :-)

Nahlásit jako SPAM
IP: 92.62.230.–
Forest
~ Anonymní uživatel
167 příspěvků
5. 6. 2013   #8
-
0
-

Omlouvám se za triple post, ale někomu to může pomoct :-)

Nakonec jsem to vyřešil takto:

for($i = 0; $i < count($_SESSION["polozky"]); $i++) 
{
if($_SESSION["polozky"][$i] == "" || $_SESSION["kusy"][$i] == "") continue;
echo "Hodnota pole: ".$_SESSION["polozky"][$i].", Index pole: ".$i.", Kusy: ".$_SESSION["kusy"][$i]."<br />";
}

Jestliže je hodnota prázdná, tak to přeskočí .. je to jakoby "smazaný" index, abych nemusel řešit problém s fcí unset :-)

Nahlásit jako SPAM
IP: 92.62.230.–
KIIV
~ Moderátor
+43
God of flame
5. 6. 2013   #9
-
+1
-
Zajímavé

a proc ti nestacilo:

foreach($_SESSION["polozky"] as $id => $polozky) {
  echo "[".$id."] ".$polozky." <". $_SESSION["kusy"][$id] ."> <br />";
}

??

?

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Forest
~ Anonymní uživatel
167 příspěvků
5. 6. 2013   #10
-
0
-

#9 KIIV
protože mi bylo helpnuto jinak, ale děkuju :) tohoto si vážím :)

Nahlásit jako SPAM
IP: 92.62.230.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 30 hostů

Podobná vlákna

Foreach — založil Marty_SVK

Foreach — založil Karel

WHILE VE WHILU VE FOREACH — založil row

Cyklus foreach a while — založil Forest

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý