PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Arrayelemente zaehlen


zu1u
05.10.2008, 23:21:11
hey vieleicht weiss jemand hier weiter, ich bin leider etwas ratlos:
ich lese tags aus mysql die durch komma getrennt werden sollen, und anschliessend ausgegeben. Es hat auchimmer funktioniert aber jetzt habe ich es mit ' " Zeichen usw innerhalb der tags versucht und bekomme Probleme

$tags = ";'a''as'df'asdf,'',''asdf',a,a,a,d,c"

$test = array_unique(explode(',', $tags));
echo count($test)." ||| ";
for($i=0;$i<count($test); $i++) {
echo $test[$i]." ||| ";
}

Als Ausgabe erhalte ich 6 ||| ;'a''as'df'asdf ||| '' ||| ''asdf' ||| a und danach fuer index 4 und 5 im array: Notice undefined Offset 4 bzw. 5

Jemand ne Ahnung warum ?!?

zu1u
05.10.2008, 23:44:25
hm komisch wenn ichs per

foreach($test AS $wort){
echo $wort;
}

durchlaufe geht das ... also auch mit 6 eintraegen, nicht nur ohne fehler ;)

wuerd mich trotzdem interessieren woran das liegt, falls es jemand weiss

Domi
06.10.2008, 01:15:24
Hi,

ja das ist ganz einfach. Hättest du das Array mit print_r(); mal angezeigt, wärst vielleicht selber drauf gekommen.

Also: Aufgrund der Tatsache, dass du die doppelten rausschmeißt, fehlen die Einträge. Der Eintrag mit dem Wert hat die Indizes 4, 5, und 6. Also:

$test[4];
$test[5];
$test[6];

Jetzt werden die doppelten gekickt und es bleibt nur die Nummer 6. Daher kannst du 4 und 5 nicht anzeigen.

Wenn du es mit foreach() machst, dann wird jeder Index ausgelesen und angezeigt, egal ob die in einer Reihenfolge sind oder nicht. Damit es mit Count wieder funktioniert müsstest du erst die Lücken schließen.

Ach so, in Zeile hast nen Semikolon hier vergessen:

soll:
$tags = ";'a''as'df'asdf,'',''asdf',a,a,a,d,c";

ist:
$tags = ";'a''as'df'asdf,'',''asdf',a,a,a,d,c"

Gruß aus dem Allgäu (da wo schon der 1. Schnee liegt)

Domi

zu1u
06.10.2008, 01:50:43
danke... ja haett ich eignetlich selbst drauf kommen koennen.

bin leider net so fit mit den ganzen php befehlen... :/

Domi
06.10.2008, 01:52:22
danke... ja haett ich eignetlich selbst drauf kommen koennen.

bin leider net so fit mit den ganzen php befehlen... :/

Wir haben alle mal klein angefangen, das kommt alles von Zeit zu Zeit, nur nicht aufgeben und immer ranhalten, dann wird das!

Domi