kostenloser Webspace werbefrei: lima-city


Mehrdimensionales Array macht Probleme

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    luziver

    luziver hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. b****y

    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 :thumb:

    <?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.
  4. Autor dieses Themas

    luziver

    luziver hat kostenlosen Webspace.


    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 :thumb:

    <?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:eek:
    Ich habe jetzt bemerkt, dass es immer nur den ersten und zweiten Buchstaben ausliest, woran kann das liegen?
  5. b****y


    Thx schonmal, aber den Array brauche ich so wie er ist, er ist in echt noch etwas grösser:eek:


    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.
  6. 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.
  7. Autor dieses Themas

    luziver

    luziver hat kostenlosen Webspace.


    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.
  8. sandrock-jonas

    Kostenloser Webspace von sandrock-jonas

    sandrock-jonas hat kostenlosen Webspace.

    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
  9. <?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
  10. Autor dieses Themas

    luziver

    luziver hat kostenlosen Webspace.


    <?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.
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!