Tömb elem beillesztés hiba
$pieces = explode("/", $ut);
$mennyi = count($pieces)-1;
for($cc=1; $cc<=$mennyi; $cc++)
{
echo "<br />";
for($szamlalo=1; $szamlalo<=$cc; $szamlalo++)
{
echo "/" . $pieces[$szamlalo];
$tomb2[] = $pieces[$szamlalo];// ITT VAN A HIBA
}
}
A probléma egyszerű: a $tomb2 nevű tömb csak a legutolsó elemet tartalmazza. De miért?
A felette levő echo rendesen kiírja egymás után a kívánt sztringet...
Előtte van egy ugyanilyen for ciklusom, az pedig jó...
Kinek van ötlete?
Tömb
$tomb2
inicializálva lett, mint üres tömb? Mondjukimplode
-dal?Igen, létrehoztam a
Maga a script egy könyvtár navigációs cucc. Az első tömbhöz hozzáfűzi a href-et(második tömb).
Az egyik ciklus ezt rakja tömbbe:
/elso_mappa
/masodik_mappa
/harmadik_mappa
A problémás ciklus pedig ezt:
/elso_mappa
/elso_mappa/masodik_mappa
/elso_mappa/masodik_mappa/harmadik_mappa
Ez lenne a href értéke.
Azt nem értem, hogyha kiírja a cuccot, akkor miért nem teszi bele a tömbbe is?
Honnan tudod?
Lehet, hogy utólag tűnik el belőle, vagy amit lekérsz később, az nem az a bizonyos tömb, esetleg azelőtt kéred le, mielőtt ez a ciklus lefutna.
Ötlet
Viszont a kettesben írt válaszod alapján úgy vélem, nem azt rakod a tömbbe, amit gondolsz, hogy teszel, vagy amit szeretnél. Úgy tűnik, azt szeretnéd csinálni, hogy a belső ciklusban összefűzöd az egyes értékeket, majd a külső ciklusban, a belső ciklus után ezt az értéket csapod hozzá
$tomb2
-höz. A külső ciklus elején ne felejtsd el visszaállítani az összefűzött értéket tároló változót.De ez egy ciklussal is megoldható lenne, ha az aktuális elem elé beszúrod az előzőleg beszúrt értéket.
Gyorsabb problémamegoldáshoz ajánlom az egyszerű hibakeresés cikket, illetve a kérdésfeltevésen is van mit csiszolni (például az adott bemenő adatra az elvárt és hibás kimenetek leírása).
1: Valóban jogosak a
2: Tényleg ezt szeretném:
1 -> 1
2 -> 1/2
3 -> 1/2/3
A probléma, hogyha az egy/ketto/harom kiíráskor 1 elem, akkor hogyan lesz belőle 3?
Kiíráskor sem egy elem, csak
Fentebb már írtam a megoldást. A külső ciklus minden futásának elején inicializálsz egy üres változót. A belső ciklusban ehhez fűzöd hozzá az egyes elemeket. A külső ciklusban, a belső ciklus után, hozzácsapod a változó tartalmát
$tomb2
-höz.Vagy
$tomb2
tartalmát úgy állítod elő, hogy egy ciklusod van, amiben első iterációban hozzáadod$tomb2
-höz az aktuális értéket, majd minden további iterációban összefűzöd az előzőleg beszúrt elemet és az aktuális értéket és ezt adod hozzá$tomb2
-höz.Na igen...
Nem a megoldást várom, de vajon melyik függvény irányába induljak el, hogy egy kulcshoz több értéket tudjak rendelni?
Array ( [elso] => Array
(
[elso] => Array
(
[0] => elso
[1] => masodik
)
)
gondolom valami ilyesmi lenne...
Túlbonyolítod
Ezt írd át php-re, és kész.
"... a kérdésfeltevésen is van mit csiszolni"
Kicsit bőbeszédű, nem ártana ennek sem egy "hőtérkép".