Mehrdimensionales Array macht Probleme
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abc
beitrag
bessere lsung
buchstabe
count
element
ersetzt beitrag
falsch mache
gelegenheit
gren
page
pps
quelltext
reis
schn verschachtelte arrays
shop
stadt
variant
wunsch
zusammen
-
Hi zusammen,
Heute hab ich folgendes Problem. Hier ist ein Array, welches ich auslesen möchte.
<?php $abc = array(array("xyz", array(array("sshop", "Schildershop"), array("wshop", "Waffenshop"))) // Array $stadt = "xyz"; } $count = count($abc); for($w=0; $w<$count; $w++) // Auslesen der Stadt, die ich will { if ($abc[$w][0] == $stadt) { $count2 = count($city[$w]); for($i=0; $i<$count2; $i++) // Auslesen der Linkdaten { if ($city[$w][$i] != $stadt && $city[$w][$i] != "") { $links .= "<a href=\"index.php?page=".$city[$w][$i][1]."\">".$city[$w][$i][0]."</a>"; // Erstellen der Links } } } } echo $links; ?>
Wenn ich dieses Script ausführe kommt im Browser folgendes: ss, wobei das erste s auf die Seite index.php?page=s verlinkt ist und das zweite s auf die Seite index.php?page=w.
Kann mir jemand sagen, was ich da falsch mache?
Grüsse
Luziver
PS: Als Ziel wollte ich eigentlich, dass beispielsweise hier folgendes ausgegeben wird: Schildershop (link auf index.php?page=sshop Waffenshop (Link auf index.php?page=wshop)
PPS: Es tut mir Leid, dass ich den Thread auseinander gezogen habe, aber lässt sich hier net verhindern.
Beitrag geaendert: 29.4.2007 12:39:35 von luziver -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Schön verschachtelte Arrays! Ich habe den Quelltext mal etwas vereinfacht. Ich weiß nicht ob es ganz deinen Wünschen entspricht, aber es funktioniert zumindest
<?php $abc = array('xyz', array('sshop', 'Schildershop'), array('wshop', 'Waffenshop')); // Array $stadt = 'xyz'; $count = count($abc); if ($abc[0] == $stadt) { for ($w=1;$w<$count;$w++) { echo "<a href=\"index.php?shop=" . $abc[$w][0] . "\">" . $abc[$w][1] . "</a><br />"; } } ?>
MfG, Bohrty. -
Schön verschachtelte Arrays! Ich habe den Quelltext mal etwas vereinfacht. Ich weiß nicht ob es ganz deinen Wünschen entspricht, aber es funktioniert zumindest
<?php $abc = array('xyz', array('sshop', 'Schildershop'), array('wshop', 'Waffenshop')); // Array $stadt = 'xyz'; $count = count($abc); if ($abc[0] == $stadt) { for ($w=1;$w<$count;$w++) { echo "<a href=\"index.php?shop=" . $abc[$w][0] . "\">" . $abc[$w][1] . "</a><br />"; } } ?>
MfG, Bohrty.
Thx schonmal, aber den Array brauche ich so wie er ist, er ist in echt noch etwas grösser
Ich habe jetzt bemerkt, dass es immer nur den ersten und zweiten Buchstaben ausliest, woran kann das liegen? -
Thx schonmal, aber den Array brauche ich so wie er ist, er ist in echt noch etwas grösser
Inwieweit größer? Meinst du z.B. so:
'xyz', array('sshop', 'Schildershop'), array('wshop', 'Waffenshop')
'fgh', array('mshop', 'Milchshop'), array('zshop', 'Zeitungsshop')
also mehrere Städte mit unterschiedlichen Shops?
MfG, Bohrty. -
Kannst du beschreiben, was du damit erreichen willst? Man muss ja nicht immer alles so kompliziert machen, wie irgendwie möglich. Ich bin sicher, es gibt eine bessere Lösung, ev OOP.
-
Kannst du beschreiben, was du damit erreichen willst? Man muss ja nicht immer alles so kompliziert machen, wie irgendwie möglich. Ich bin sicher, es gibt eine bessere Lösung, ev OOP.
Also, ich habe mehrere Städte in meinem Projekt, nun kann man zwischen diesen Städten reisen und es kommen andere Links ins Menu, je nachdem in welcher Stadt man ist. Die Städte sind alle in einem Array drinnen. -
Für deine Zwecke wäre viellecht ein assoziatives Array sinnvoller als ein indiziertes:
<?php $abc = array( 'xyz' => array( 'sshop' => 'Schildershop', 'wshop' => 'Waffenshop', ), ); $stadt = 'xyz'; foreach ($abc[$stadt] as $key => $element) echo '<a href=\'index.php?page='.$key.'\'>'.$element.'</a>'; ?>
edit: Warum wird die Klammer in meinem Array durch einen Smiley ersetzt?
Beitrag geaendert: 29.4.2007 15:55:23 von sandrock-jonas -
<?php class stadt { var $_name = ""; var $_shop = array(); var $_shopKurz = array(); function stadt ($name) { $this->_name = $name; } function getName() { return $this->_name; } function addShop($shop, $kurz) { $this->_shop[] = $shop; $this->_shopKurz[] = $kurz; } function links() { foreach($this->_shop AS $key => $shop) { echo '<a href=\'index.php?shop=' . $this->shopKurz[$key] . '\'>' . $shop . '</a><br />'; } } } $array = array(); $array[0] = new stadt("a"); $array[0]->addShop("Waffenshop", "wshop"); $array[0]->addShop("Schildershop", "sshop"); $array[1] = new stadt("b"); $array[1]->addShop("Waffenshop", "wshop"); $array[1]->addShop("Schildershop", "sshop"); $stadt = "b"; foreach($array AS $stadt) { if($stadt->getName == $stadt) { $stadt->links(); } } ?>
Habs nicht ausprobiert, aber ist übersichtlicher als deine Variante
Beitrag geaendert: 29.4.2007 15:57:46 von nigolaz -
<?php class stadt { var $_name = ""; var $_shop = array(); var $_shopKurz = array(); function stadt ($name) { $this->_name = $name; } function getName() { return $this->_name; } function addShop($shop, $kurz) { $this->_shop[] = $shop; $this->_shopKurz[] = $kurz; } function links() { foreach($this->_shop AS $key => $shop) { echo '<a href=\'index.php?shop=' . $this->shopKurz[$key] . '\'>' . $shop . '</a><br />'; } } } $array = array(); $array[0] = new stadt("a"); $array[0]->addShop("Waffenshop", "wshop"); $array[0]->addShop("Schildershop", "sshop"); $array[1] = new stadt("b"); $array[1]->addShop("Waffenshop", "wshop"); $array[1]->addShop("Schildershop", "sshop"); $stadt = "b"; foreach($array AS $stadt) { if($stadt->getName == $stadt) { $stadt->links(); } } ?>
Habs nicht ausprobiert, aber ist übersichtlicher als deine Variante
Beitrag geaendert: 29.4.2007 15:57:46 von nigolaz
Sieht gut aus, muss ich bei Gelegenheit mal ausprobieren. Danke, melde mich wieder, wenns Probleme gibt. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage