Multidimensionales Array auslesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Multidimensionales Array auslesen

    Hallo Leute,

    folgendes Array

    Code:
    Array ( [anrede] => Array ( 
    [BI2009] => Array ( [0] => Herr [1] => Herr [2] => Herr ) 
    [O76010] => Array ( [0] => Herr [1] => Herr ) 
    [06W011F] => Array ( [0] => Herr [1] => Herr [2] => Herr ) ) [titel] => Array ( 
    [BI2009] => Array ( [0] => [1] => [2] => ) 
    [O76010] => Array ( [0] => [1] => ) 
    [06W011F] => Array ( [0] => [1] => [2] => ) ) [vrname] => Array ( 
    [BI2009] => Array ( [0] => Max [1] => Franz [2] => Franz ) 
    [O76010] => Array ( [0] => Franz [1] => Elfriede )
     [06W011F] => Array ( [0] => Max [1] => Otto [2] => Martin ) ) [nname] => Array ( 
    [BI2009] => Array ( [0] => Mustermann [1] => Hansen [2] => Maier )
     [O76010] => Array ( [0] => Otto [1] => Hansen )
     [06W011F] => Array ( [0] => Hansen [1] => Hansen [2] => Maier ) ) [phone] => Array ( 
    [BI2009] => Array ( [0] => [1] => [2] => ) 
    [O76010] => Array ( [0] => [1] => )
     [06W011F] => Array ( [0] => [1] => [2] => ) )
    Am ende muss folgendes Ausgegeben werden.

    Beispiel:
    PHP-Code:
    $id BI2009
    $anrede 
    Herr
    $titel 
    "";
    $vrname "Max";
    $nname "Mustermann";
    $phone ""
    PHP-Code:
    $i 0;
    foreach(
    $_POST["anrede"] as $anrede)
    {
    $new_array = array();
    $i $i++;

    $new_array array_shift($new_array,$anrede);

    nun sollte ich alle daten anhand der ID bekommen also wieder mit einer neuen foreach ---
    PHP-Code:
    $i 0;
    foreach(
    $new_array as $ID)
    {
    $i $i++;

    $return .= $ID;


    aber das will nicht so recht .. kann auch sein das ich mich ein bisschen verlaufen habe

    jeweils pro Datensatz und pro Array
    Zuletzt geändert von fair2; 01.09.2010, 02:09. Grund: da hab ich glatt was vergessen

  • #2
    Hallo,

    soll ich den Thread sofort löschen oder willst du noch eine Chance haben, eine vernünftige Frage laut Forenregeln draus zu machen und deine bisherigen eigenen Ansätze zu zeigen. Du erwartest doch bitte nicht, dass dir hier jemand die Lösung auf dem Silbertablett serviert.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Danke für die Anpassung. Jetzt bin ich auch bereit, dir zu helfen. Eine Bitte noch: jeglichen Code in Code-Tags packen.

      Es heißt $_POST, nicht $_POS. Wenn PHP dir das nicht selbst gesagt hat, Error-Reporting aufdrehen (ist auch eine Forenregel).

      Nutze die Assoziativität von Arrays in PHP, um die zusammengehörenden Daten zu gruppieren. Das was ich damit meine, könnte dir evtl. der Blogeintrag zum Thema Gruppenwechsel näher illustrieren.

      Wenn du das anwendest, könnte das Ergebnisarray dann so aussehen:
      PHP-Code:
      Array
      (
          [
      0] => Array
              (
                  [
      id] => BI2009
                  
      [index] => 0
                  
      [anrede] => Herr
                  
      [titel] => 
                  [
      vrname] => Max
                  
      [nname] => Mustermann
                  
      [phone] => 
              )
          [
      1] => Array
              (
                  [
      id] => BI2009
                  
      [index] => 1
                  
      [anrede] => Herr
                  
      [titel] => 
                  [
      vrname] => Franz
                  
      [nname] => Hansen
                  
      [phone] => 
              )
          [
      2] => Array
              (
                  [
      id] => BI2009
                  
      [index] => 2
                  
      [anrede] => Herr
                  
      [titel] => 
                  [
      vrname] => Franz
                  
      [nname] => Maier
                  
      [phone] => 
              )
          [
      3] => Array
              (
                  [
      id] => O76010
                  
      [index] => 0
                  
      [anrede] => Herr
                  
      [titel] => 
                  [
      vrname] => Franz
                  
      [nname] => Otto
                  
      [phone] => 
              )
          [
      4] => Array
              (
                  [
      id] => O76010
                  
      [index] => 1
                  
      [anrede] => Herr
                  
      [titel] => 
                  [
      vrname] => Elfriede
                  
      [nname] => Hansen
                  
      [phone] => 
              )
          [
      5] => Array
              (
                  [
      id] => 06W011F
                  
      [index] => 0
                  
      [anrede] => Herr
                  
      [titel] => 
                  [
      vrname] => Max
                  
      [nname] => Hansen
                  
      [phone] => 
              )
          [
      6] => Array
              (
                  [
      id] => 06W011F
                  
      [index] => 1
                  
      [anrede] => Herr
                  
      [titel] => 
                  [
      vrname] => Otto
                  
      [nname] => Hansen
                  
      [phone] => 
              )
          [
      7] => Array
              (
                  [
      id] => 06W011F
                  
      [index] => 2
                  
      [anrede] => Herr
                  
      [titel] => 
                  [
      vrname] => Martin
                  
      [nname] => Maier
                  
      [phone] => 
              )

      Zuletzt geändert von AmicaNoctis; 01.09.2010, 02:08.
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        okay ich werde es mal versuchen,

        scheint nicht zu gehen da die IDS und die anzahl der Felder immer verschieder sein können...

        PHP-Code:
        <?
        if($_POST)
        {
            $array = array();
            foreach ($_POST as $row) {
                $array[$row["anrede"]][$row["rev_id"]][] = $row;
            }
        }
        ?>

        <form action="" method="post">
        <input type="text" name="anrede[BI2009][]" />
        <input type="text" name="anrede[BI2009][]" />
        <input type="text" name="anrede[BI2009][]" />
        <input type="text" name="anrede[BI2008][]" />
        <input type="text" name="anrede[BI2008][]" />
        <input type="text" name="anrede[BI2008][]" />
        <input type="text" name="anrede[BI2008][]" />
        </form>
        Zuletzt geändert von fair2; 01.09.2010, 02:15. Grund: noch was ..

        Kommentar


        • #5
          Den Code kenne ich

          Du musst den schon auf dein Problem anpassen, das ist nur ein Beispiel und die Array-Indizes beziehen sich auf meine Historytabelle. Daher kann es nicht funktionieren.

          Du brauchst 3 ineinander geschachtelte foreach-Schleifen (die ausführliche Notation mit Key und Value). In der innersten hast du alle Daten, die du brauchst und diese schreibst du dann nach der Gruppenwechselmethode in ein neues Array.
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Code:
            Array ( [BI2009] => Array ( [0] => Hallo [1] => Ich [2] => bin ) [BI2008] => Array ( [0] => der [1] => test [2] => ob [3] => geht )
            soweit habe ich es

            Code:
            Array ( [anrede] => Array ( [BI2009] => Array ( [0] => Hallo [1] => Ich [2] => bin ) [BI2008] => Array ( [0] => der [1] => test [2] => ob [3] => geht ) ) [s] => safe )

            Kommentar


            • #7
              Ach, egal, hier hast du es.

              PHP-Code:
              <?php
                  $data 
              = array(
                      
              "anrede" => array(
                          
              "BI2009" => array("Herr""Herr""Herr"),
                          
              "O76010" => array("Herr""Frau"), // hab mir mal erlaubt, aus der Elfriede eine Frau zu machen
                          
              "06W011F" => array("Herr""Herr""Herr")
                      ), 
                      
              "titel" => array(
                          
              "BI2009" => array(""""""),
                          
              "O76010" => array(""""),
                          
              "06W011F" => array("""""")
                      ), 
                      
              "vrname" => array(
                          
              "BI2009" => array("Max""Franz""Franz"),
                          
              "O76010" => array("Franz""Elfriede"),
                          
              "06W011F" => array("Max""Otto""Martin")
                      ), 
                      
              "nname" => array(
                          
              "BI2009" => array("Mustermann""Hansen""Maier"),
                          
              "O76010" => array("Otto""Hansen"),
                          
              "06W011F" => array("Hansen""Hansen""Maier")
                      ), 
                      
              "phone" => array(
                          
              "BI2009" => array(""""""),
                          
              "O76010" => array(""""),
                          
              "06W011F" => array("""""")
                      )
                  );
                  
              $result = array();
                  foreach (
              $data as $field => $idvalues) {
                      foreach (
              $idvalues as $id => $values) {
                          foreach (
              $values as $index => $value) {
                              
              // \x01 ist nur ein Trennzeichen, das mit sehr hoher Wahrscheinlichkeit
                              // nicht selbst in $id oder $index vorkommt
                              
              $result[$id "\x01" $index]["id"] = $id;
                              
              $result[$id "\x01" $index]["index"] = $index;
                              
              $result[$id "\x01" $index][$field] = $value;
                          }
                      }
                  }
                  
              $result array_values($result);
                  
              header("Content-Type: text/plain; charset=utf-8");
                  
              print_r($result);
              ?>
              Zuletzt geändert von AmicaNoctis; 01.09.2010, 02:35.
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                Hammer .. das geht ja

                ICH DANKE DIR VIELMALS ... da kann man ja mal früher schlafen gehen...

                Kommentar


                • #9
                  Bitte versuch aber (meinetwegen auch erst nach dem Schlafen) zu verstehen, warum das ja geht und was es genau und warum macht.

                  Gute Nacht.
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    verdammt nun kommt das andere Problem

                    in dem Formular werden auch Daten welche nicht als [] definiert werden weitergegeben...

                    nun wollte ich mit array_merge die nötigen arrays in ein neues array schreiben aber er macht das nicht ...grr

                    $data = array();
                    $data = array_merge($data,$_POST["anrede"],
                    $_POST["titel"],$_POST["vrname"],$_POST["nname"],$_POST["phone"]);

                    Kommentar


                    • #11
                      Versteh ich nicht. Was steht genau in $_POST?

                      Code in Code-Tags!
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        Code:
                        Array
                        (
                            [anrede] =&gt; Array
                                (
                                    [BI3101] =&gt; Array
                                        (
                                            [0] =&gt; Herr
                                            [1] =&gt; Herr
                                            [2] =&gt; Herr
                                        )
                        
                                )
                        
                            [titel] =&gt; Array
                                (
                                    [BI3101] =&gt; Array
                                        (
                                            [0] =&gt; 
                                            [1] =&gt; 
                                            [2] =&gt; 
                                        )
                        
                                )
                        
                            [vrname] =&gt; Array
                                (
                                    [BI3101] =&gt; Array
                                        (
                                            [0] =&gt; Franz
                                            [1] =&gt; Heinz
                                            [2] =&gt; Franz
                                        )
                        
                                )
                        
                            [nname] =&gt; Array
                                (
                                    [BI3101] =&gt; Array
                                        (
                                            [0] =&gt; Heinz
                                            [1] =&gt; Holger
                                            [2] =&gt; Holt
                                        )
                        
                                )
                        
                            [phone] =&gt; Array
                                (
                                    [BI3101] =&gt; Array
                                        (
                                            [0] =&gt; 01234
                                            [1] =&gt; 01234
                                            [2] =&gt; 01234
                                        )
                        
                                )
                        
                            [gutschein] =&gt; 
                            [firma] =&gt; Max Muster
                            [strasse] =&gt; Muster Straße 17
                            [zusatz] =&gt; 
                            [plz] =&gt; 12345
                            [ort] =&gt; Musterstadt
                            [abteilung] =&gt; 
                            [telefon] =&gt; 02 1332656 44
                            [anrede2] =&gt; Herr
                            [titel2] =&gt; Array
                            [fax] =&gt; 
                            [nachname] =&gt; Muster
                            [email] =&gt; info@mustermann.de
                            [vorname] =&gt; Max
                            [webseite] =&gt; 
                            [bemerkungen] =&gt;         
                            [agb] =&gt; AGB gelesen
                            [book] =&gt; Seminare/TeilnehmerInnen anmelden
                        )
                        Array
                        (
                            [BI3101] =&gt; Array
                                (
                                    [0] =&gt; 01234
                                    [1] =&gt; 01234
                                    [2] =&gt; 01234
                                )
                        
                        )
                        PHP-Code:
                        $post_array = array();
                            
                        $data = array();
                            foreach(
                        $_POST as $post)
                            {
                                if(!
                        is_array($post))
                                {
                                    
                        array_push($post_array,$post);
                                }
                                elseif(
                        is_array($post))
                                {
                                    
                        array_merge($data,$post);
                                }
                            } 
                        irgendwie ist heute der Wurm drin
                        Zuletzt geändert von fair2; 01.09.2010, 03:36. Grund: mal schöner

                        Kommentar


                        • #13
                          Geht das auch in übersichtlich?

                          Lass dir im Browser den Quelltext anzeigen und kopier es von dort. Da geb ich mir Mühe und du knallst mir wieder so nen Mist vor die Füße, den kein Mensch lesen kann.
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar


                          • #14
                            Dann teil doch $_POST erstmal in zwei neue Arrays auf (foreach und is_array) und verarbeite die jeweils einzeln.
                            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                            Super, danke!
                            [/COLOR]

                            Kommentar


                            • #15
                              PHP-Code:
                              $post_array = array();
                              $data = array();
                              foreach(
                              $_POST as $post => $key)
                              {
                                  if(!
                              is_array($key))
                                  {
                                          
                              array_merge($post_array,array($post=>$key));
                                  }
                                      elseif(
                              is_array($key))
                                  {
                                          
                              array_merge($data,array($post=>$key));
                                  }

                              Kommentar

                              Lädt...
                              X