Použití unset v array – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Použití unset v array – PHP – Fórum – Programujte.comPoužití unset v array – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Forest
~ Anonymní uživatel
167 příspěvků
4. 6. 2013   #1
-
0
-

Ahoj, měl bych dotaz   

Pokud mám v sessions pole, třeba:

 

$_SESSION["neco"] = array();

a nastavim nejake indexy, třeba prvních 5

$_SESSION["neco"][0] = "h0";
$_SESSION["neco"][1] = "h1";
$_SESSION["neco"][2] = "h2";
$_SESSION["neco"][3] = "h3";
$_SESSION["neco"][4] = "h4";

Pak je vypisuju takto:

for($f = 0; $f < count($_SESSION["neco"]); $f++)
{
echo $_SESSION["neco"][$f];
}

Problém nastane ve chvíli, kdy potřebuju odstranit index. Například potřebuju odstranit index 3 pomocí:

unset($_SESSION["neco"][3];

Vyhodí mi to: Notice: Undefined offset: 3 a index 4 mi to už neukáže ...

Co s tím? Díky   

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

A nestačilo by prostě $_SESSION['neco'][3] nastavit na "" (prázdný řetězec) a pak to někde testovat?  

Nahlásit jako SPAM
IP: 89.24.18.–
Linux is like a wigwam
No gates, no windows, apache inside.
Markaos0
Návštěvník
4. 6. 2013   #3
-
0
-

A ještě poznámka:  Na procházení polí bych doporučoval spíš foreach

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

#2 Markaos
To mě samozřejmě taky napadlo, ale to jsem chtěl udělat až v případě, kdy nebude jiná cesta ...

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

Mně to jede bez problémů: 

<?php
$_SESSION['neco'][0] = "h0";
$_SESSION['neco'][1] = "h1";
$_SESSION['neco'][2] = "h2";
unset($_SESSION['neco'][1]);
print_r($_SESSION['neco']);
?>

A na obyčejné vypisování stačí print_r   

Nahlásit jako SPAM
IP: 89.24.18.–
Linux is like a wigwam
No gates, no windows, apache inside.
Markaos0
Návštěvník
4. 6. 2013   #6
-
0
-

Jakou máš verzi PHP?   

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

#6 Markaos
5.4.14

Nahlásit jako SPAM
IP: 92.62.230.–
KIIV+42
God of flame
4. 6. 2013   #8
-
+2
-
Zajímavé

kazdopadne blbe se prochazi pole podle cisel, kdyz count vraci 4 a trojku si smazal.... (se pak nediv ze to hlasi neexistujici index 3 a ke 4 se to ani nedostane protoze uz ses za poctem)

+ pocitat to v kazdym kole cyklu je taky uzasnej zpusob jak vyrabet superpomaly programy

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Markaos0
Návštěvník
4. 6. 2013   #9
-
0
-

Tak možná že chyba je tady. Já mám 5.4.6

KIIV má pravdu

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

#8 KIIV
Ježiši je to jenom test .. odpust si ty řeči okolo .. ty mám fakt moc rád ...

Nahlásit jako SPAM
IP: 92.62.230.–
z_moravec
~ Redaktor
+3
Posthunter
4. 6. 2013   #11
-
0
-

#10 Forest
Jak už bylo řečeno výš, použij foreach a pojede to.

Nahlásit jako SPAM
IP: 46.39.170.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Forest
~ Anonymní uživatel
167 příspěvků
4. 6. 2013   #12
-
0
-

#11 z_moravec

A jak?

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

#12 Forest
 

<?php
foreach($_SESSION["neco"] as $neco){
echo $neco."<br>";
}
?>
Nahlásit jako SPAM
IP: 89.24.18.–
Linux is like a wigwam
No gates, no windows, apache inside.
Forest
~ Anonymní uživatel
167 příspěvků
4. 6. 2013   #14
-
0
-

#13 Markaos
Už to jde, ale jsou ty indexy přeházené, takže nevím, který je který a jaké číslo použít u unset

Nahlásit jako SPAM
IP: 92.62.230.–
Řešení
Markaos0
Návštěvník
4. 6. 2013   #15
-
0
-
Vyřešeno Nejlepší odpověď

   

<?php
foreach($_SESSION["neco"] as $index=>$neco){
echo $index." = ".$neco."<br>";
}
?>
Nahlásit jako SPAM
IP: 89.24.18.–
Linux is like a wigwam
No gates, no windows, apache inside.
z_moravec
~ Redaktor
+3
Posthunter
4. 6. 2013   #16
-
0
-

   

<?php
foreach($_SESSION["neco"] as $klic => $neco){
echo $neco."<br>".$klic."<br>";
}
?>

Tímto dostaneš jak obsah prvku, tak i jeho index.

Nahlásit jako SPAM
IP: 46.39.170.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Forest
~ Anonymní uživatel
167 příspěvků
4. 6. 2013   #17
-
0
-

#15 Markaos
Tak né, už je to v pořádku .. děkuju moc Markaos   

A pro KIVa: pokud nechci poradit, tak držim hubu a nemám chytré řeči

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

#16 z_moravec
Díky moc   

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

Počkej, KIIV ti pomohl. Já jsem si nevšiml, kde je chyba.

Nahlásit jako SPAM
IP: 89.24.18.–
Linux is like a wigwam
No gates, no windows, apache inside.
Markaos0
Návštěvník
4. 6. 2013   #20
-
0
-

A ještě označ vlákno za vyřešené, ať to ostatní nemate

EDIT: a pro příště: PHP "manuál"

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

#19 Markaos
Pomohl mi to akorát celé zkritizovat. To vím taky, že jsme byl za počtem, a že proto to psalo ten warning ... jenže pokud mi chtěl pomoct, tak jeho úkolem bylo, mi napsat foreach, který to vyřešil ... a ne mi psát, jak je to úžasné pro pomalé programy ...

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

#20 Markaos
Nemůžu, nejsem přihlášený.

Nahlásit jako SPAM
IP: 92.62.230.–
KIIV+42
God of flame
4. 6. 2013   #23
-
+1
-
Zajímavé

#21 Forest
rekl sem rovnou, kde je chyba .. + bonusova chyba (formalni) s tim countem...

sorry ze popis chyby je zaroven i kritika tvoji neomylne osobnosti - rad bych ti rekl ze to je chyba php a ne tvoje... kazdopadne s takovouhle vztahovacnosti to v programovani nedotahnes daleko

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
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, 96 hostů

Podobná vlákna

Array of array of array — založil Yuffie

COM Array — založil Pawl

$a[], [], array[] — založil Rudolf

Array — založil Row

 

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