array durchlaufen, bis... Wie macht man sowas?

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

  • array durchlaufen, bis... Wie macht man sowas?

    Hallo!

    Ich spiele gerade etwas mit Arrays herum (selbsttraining), und bin dabei auf ein Problem gestossen:

    Ich möchte ein Array1 ausgeben, einschliesslich bis zu dem Punkt wo ein Wert des Array1 mit einem anderen übereinstimmt, das Array1 an dieser Stelle unterbrechen, ein Array2 ausgeben, und dann den Rest des Array1 ausgeben.

    Ich bin mir nicht darüber im Klaren, mit welcher Schleife (while, do while, oder for) ich das am einfachsten lösen kann, und wie ich mit break und continue arbeiten muss damit das funktioniert.

    also, vereinfacht:

    gib $Array1 aus, bis $wert1 = $wert2,
    unterbreche Ausgabe $Array1,
    gibt $Array2 aus,
    setze Ausgabe $Array1 an unterbrochener Stelle fort.

    Welche Schleife kann sowas?
    Wie muss der Code ungefähr aussehen?
    Sind break und continue überhaupt sinnig und nötig?

    Danke im Voraus!
    Gruss,

    Volker

  • #2
    Re: array durchlaufen, bis... Wie macht man sowas?

    Original geschrieben von vs1
    Welche Schleife kann sowas?
    M.E. alle drei genannten.
    Sind break und continue überhaupt sinnig und nötig?
    Bei der Realisierung mit einer for-Schleife vermutlich eher als bei while.
    Wie muss der Code ungefähr aussehen?
    Pseudocode-mäßig: Etwa so, wie du es schon beschrieben hast.
    In PHP-Code umgesetzt: Deine Aufgabe ;-)


    P.S.: Du brauchst die Ausgabeschleife ja gar nicht unbedingt zu "unterbrechen" - die Ausgabe von Array2 kann ja auch darin geschehen, wenn die Bedingung zutrifft.
    Code:
    schleife(ueber Array1) {
       gebe wert von Array1 aus
       wenn(wert von Array1 == ...) {
          schleife(ueber Array2) {
             gebe wert von Array2 aus
          }
       }
    }
    Zuletzt geändert von wahsaga; 28.06.2006, 13:21.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Tja, und an der Aufgabe scheitere ich gerade.

      also, so geht's leider nicht:
      ------------------------------
      foreach ($array1 as $entry1) {
      echo $entry;
      if($entry==$wert1) {
      break;
      foreach ($array2 as $wert2)
      echo $wert2;
      }
      continue;
      }
      }
      ------------------------------

      Bitte um (etwas detailiertere) Hilfe
      Gruss,

      Volker

      Kommentar


      • #4
        uups, ich hab wohl in der Zeit geantwortet, wo Du Deinen Beitrag editiert hast....
        Gruss,

        Volker

        Kommentar


        • #5
          Original geschrieben von vs1
          also, so geht's leider nicht:
          ------------------------------
          foreach ($array1 as $entry1) {
          echo $entry;
          if($entry==$wert1) {
          break;
          foreach ($array2 as $wert2)
          echo $wert2;
          }
          continue;
          }
          }
          Schau dir noch mal an, wie break und continue verwendet werden - so jedenfalls nicht.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            foreach ($array1 as $entry1 ) {
            echo $entry ;
            if($entry==$wert1) {
            ...
            so wird das auch nix. $entry1 ungleich $entry
            tutorial: peterkropff.de schattenbaum.de tut.php-quake.net
            documentation: php.net mysql.com framework.zend.com

            Die Nachtwache!

            Kommentar


            • #7
              PHP-Code:
              foreach($array1 as $entry){
                  echo 
              $entry;
                  if(
              $entry == $wert1) {
                      foreach(
              $array2 as $wert){
                          echo 
              $wert;
                      }
                  }

              Da brauchst du kein break oder continue dafür.
              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar

              Lädt...
              X