Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 17

Thema: Arrayausgaben

  1. #1
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101

    Arrayausgaben

    Hi Leuts,

    Also ich hab mal wieder ein Problem

    Ich habe ein Array, dies sind z.B. die hauptprodukte:
    PHP-Code:
    $array1=(
    '1' => 'Birne',
    '2' => 'Apfel',
    '3' => 'Orange'
    ); 
    Dann habe ich noch ein Array, die zugehörigen angaben z.b. der größe:
    PHP-Code:
    $array2=(
    '1' => 'Birne groß',
    '3' => 'Apfel groß',
    '5' => 'Orange groß',
    '8' => 'Orange klein'
    ); 
    Und noch ein weiters Array, hier stehen die schlüssel aus dem array2 und als wert die schlüssel aus array1:
    PHP-Code:
    $array3=(
    '1' => '1',
    '3' => '1',
    '5' => '3',
    '8' => '3'
    ); 
    Nun möchte ich immer den Wert aus Array1 nacheinander auflisten und nebem dem jeweiligen Wert aus Array1 alle Werte aus Array2 die zu den Werten aus array1 passen. Beide ausgeben ist kein problem, aber dann stehen ja neben jedem wert aus array1 immer alle werte aus array2, ist ja auch logisch.

    Wo ich richtig hänge ist, dass ich nur die passenden werte aus array2 ausgegeben bekomme, da scheiterts aber daran, dass ich das mit dem array3 nicht gebacken bekomme das er mir das abgleicht.

  2. #2
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  3. #3
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    Hm aber das kann doch auch nciht so richtig klappen wenn ich mit array_combine arbeite, da ich dann ja array2 und 3 verwenden muss und dann hab ich ja nicht alle werte aus array2 sondern nur 2 davon.
    Mit array1 kann man das ja nicht machen, weil die anzahl der elemente nicht übereinstimmt.
    Geändert von ace23 (29-01-2006 um 20:52 Uhr)

  4. #4
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    Hallo ace23,

    wie wärs denn, wenn du mit z.B. einem Mehrdimensionalen Array arbeitest?

    Beispiel:

    PHP-Code:
      $data[1] = array();
      
    $data[1]['name'] = 'Apfel';
      
    $data[1]['gruppen'] = array();
      
    $data[1]['gruppen'][] = 'Apfel groß';
      
    $data[1]['gruppen'][] = 'Apfel klein';
      
    //... usw.

      //Gruppen Ausgabe:
      
    $auswahl 1;
      
    $name $data[$auswahl]['name'];
      echo 
    "Du hast $name gewählt.<br />";
      
    $gruppen $data[$auswahl];
      foreach (
    $gruppen as $key=>$gruppe) {
         echo 
    "$key$gruppe <br />";
      } 
    ... alternativ könnte man das Ganze natürlich auch mit Objekten machen.

    Gruß,

    Gaert
    Geändert von Gaert (29-01-2006 um 21:16 Uhr)


  5. #5
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    hi,

    an sowas hab ich auch schon gedacht, aber bin dann daran gescheitert das ich nicht wusste wie ich das ganze da rein bekomme, denn die 3 arrays kommen aus einer datenbank aus 2 tabellen.

  6. #6
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    Moin,
    also ich hab mal hin und her versucht, weiss aber ned ob das so richtig ist, weil ich bekomme es nicht hin.

    Ich müsste ja erstmal das Hauptprodukt aus der DB holen mit id und name.
    Sagen wir mal ID=1 und Name=Apfel uswusw.
    Dann muss ich doch in der While schleife $data["$result[id]"] = "$result[name]"; reinpacken damit er mir das allen ins erste array packt.
    So dann wiederrum hole ich in einer zweiten query die daten die zu den namen passen, also wieder id, namens id, und bezeichnung und muss dann doch wieder in der while Schleife das array füllen richtg?
    Also in der art $data[1]['gruppen']["$result[id]"] = "$result[name]";

    So und genau da bin ich irgendwie zu doof für.
    Also die [1] im Array wäre doch für das gesamte Produkt, z.b. Äpfel und wenn ich dann ne [2] hätte wäre das ja dann das zweite Produkt.
    Demnach müsste ich doch bei den produktquerys die [1] gegen die id tauschen oder und dann unten in der zweiten query erstmal guggen wo was hin muss?

    ach man ist das ein mist

  7. #7
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von ace23
    So und genau da bin ich irgendwie zu doof für.
    Also die [1] im Array wäre doch für das gesamte Produkt, z.b. Äpfel und wenn ich dann ne [2] hätte wäre das ja dann das zweite Produkt.
    Demnach müsste ich doch bei den produktquerys die [1] gegen die id tauschen oder und dann unten in der zweiten query erstmal guggen wo was hin muss?

    ach man ist das ein mist

    Mehrdimensionale Arrays sind unheimlich bequem, verlangen aber ein
    wenig Übung. In deinem Fall verwechselst du in der 2. Dimension
    Key und Value.

    Tip:
    kleines externen Beispiel machen (oder das von Gaert nehmen)
    und lesen, schreiben, löschen, erweitern, sortieren etc, üben.

    Weiterhin, dein Array möglichst übersichtlich formatieren,
    das hilft dir bei der Fehlersuche.
    (z.B.)
    http://www.michael-berndt.de/ie/tux/...it_print_r.htm
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  8. #8
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    So also ich habs geschaft, musste mich allerdings ein wenig dazu weiter informieren.

    PHP-Code:
    $query=$DB->query("SELECT gruppen.gid, gruppen.name, typen.id, typen.gruppenid, typen.typenname FROM gruppen Inner Join typen ON gruppen.gid = typen.gruppenid ORDER BY gruppen.gid ASC");
        while(
    $result=$DB->fetch_array($query)) {
            
    $data[$result['gid']][$result['id']] = $result['typenname'];
        } 
    Gut nun hab ich das erstmal mit den testdaten hinbekommen, nun will ich das weiter ausgeben.

    Ich habe nun zwei templates im ersten will ich die namen der gruppen ausgeben (hab ich in einem anderen array nennen wir es 3) und daneben im TD das selectfeld mit den typen.
    Da ich ja nun alles in dem array1 habe muss ich das ganze eingrenzen auf die Auswahl der gruppen die in einem anderen array2 stehen, also das er nur die anzeigt aus dem ersten array die auch gewählt sind.

    Problem ist nun das ich nicht weiss wie ich weiter vorgehen muss um das zu machen. Ich scheitere schon am anfang wenn ich das array1 ausgeben will weil mit foreach geht das ja ned so ohne weiteres.
    Geändert von ace23 (30-01-2006 um 15:45 Uhr)

  9. #9
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    So hab mich nochmal zusammengerissen.

    Also so würde es gehen:
    PHP-Code:
        foreach($data as $key => $value) {
            
    $game=$gnames[$key];
            foreach(
    $value as $key2 => $value2) {
                
    $selectmodi_row.=sprintf("<option value=\"%d\" %s >%s</option>\n" $key2$selected$value2);
            }
        eval (
    "\$database_row.=\"".templateinclude("liga/squadcenter_clanprofile_setmodi_games_bit")."\";");
        } 
    Aber da wäre das Problem wie ich schon mal hatte in einem anderen Fall, das ich beim weiteren Datensatz doppelte ausgaben (in dem fall der Modis) habe.

    Also
    Name 1 Modus1, Modus2
    Name 2 Modus1, Modus2, Modus4, Modus5

    mhhhhh immer dieser mist

  10. #10
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von ace23
    So hab mich nochmal zusammengerissen.

    Also so würde es gehen:
    PHP-Code:
        foreach($data as $key => $value) {
            
    $game=$gnames[$key];
            foreach(
    $value as $key2 => $value2) {
                
    $selectmodi_row.=sprintf("<option value=\"%d\" %s >%s</option>\n" $key2$selected$value2);
            }
        eval (
    "\$database_row.=\"".templateinclude("liga/squadcenter_clanprofile_setmodi_games_bit")."\";");
        } 
    Aber da wäre das Problem wie ich schon mal hatte in einem anderen Fall, das ich beim weiteren Datensatz doppelte ausgaben (in dem fall der Modis) habe.

    Also
    Name 1 Modus1, Modus2
    Name 2 Modus1, Modus2, Modus4, Modus5

    mhhhhh immer dieser mist
    Herzlichen Glückwunsch.
    Aber wie ich schon sagte, ohne üben is nich.
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  11. #11
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    Tja wenn sich das Üben aufs array bezieht hast du recht. Aber dadurch das ich die $selectmodi_row im $database_row drin habe bekomme ich ja denke ich dieses problem, nur wie soll ich das z.B. üben? ich habe ja eigentlich keine andere Möglichkeit weil ich es ja in diesem Template brauche.

  12. #12
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    Hat wenigstens jemand noch nen Tipp dazu? dann hätt ich das vielleicht blad gepackt.

  13. #13
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von ace23
    Tja wenn sich das Üben aufs array bezieht hast du recht. Aber dadurch das ich die $selectmodi_row im $database_row drin habe bekomme ich ja denke ich dieses problem, nur wie soll ich das z.B. üben? ich habe ja eigentlich keine andere Möglichkeit weil ich es ja in diesem Template brauche.
    Die Begabten wollen zuviel auf 1x und bremsen sich dann aus.
    Wenn du dich mit Arrays beschäftigst, ist nachher wurscht woher
    die kommen. Daher ob du Sie selber anlegt hast, oder irgendeine
    PHP-MySQL Funktion dir dein Array erstellt hast.

    PHP macht dir das nun wirklich einfach, das es viele nützliche
    Funktionen schon mitbringt. In anderen Sprachen weht ein anderer
    Wind.

    http://www.php.net/manual/en/ref.array.php

    Nach Möglichkeit...
    Jede Funktion 1x durchgehen, sich selber Notizen und ein Beispiel
    anlegen.
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  14. #14
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    HI,

    also wenn ich mir so manchen Usercomment anschaue in dem Manual, dann würde ich doch mal vermuten das ich nicht unbedingt eine zweite schleife in der schleife brauchen würde.

  15. #15
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    ja gut wies scheint muss ich das dann wohl aufgeben, ich find nix wie ichs machen kann, auch wenn ich jahrelang in dem manual rumsuche und lese.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •