Array mal andersrum...

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

  • Array mal andersrum...

    moinsen!

    leute ich hab ein dringendes prob,
    zum glück weis ich etz wenigstens wos liegt...

    in meiner lösung müsst ich aber wieder dinge verwenden die ich net kann da dacht ich mir ich frag mal schnell euch


    also ich in nem array einen wert löschen,

    arr[] <<das is mein array das geht von 0 bis 5

    etz will ich z.b. arr[2] löschen, weil es einfach weg muss...

    aber ich will das er dann aufrückt als arr[3] zu arr[2] macht und arr[4] zu [3] usw... wie mach ich das? im manual hab ich nix von werten gefunden auf die schnelle... bin aweng gestressd...
    Man lernt nie aus...

    ...und wenn man's doch tut braucht man sich auch nicht schämen!

  • #2
    Das Problem hat ich auchschon, da mußte dann n eigene funktion zu schreiben:
    PHP-Code:
    $zu_loeschen 2// zu löschende Nummer
    $laenge count($arr)-1// ermitteln der Arraylänge
    for ($i $zu_loeschen$i <= $laenge-1$i++)
    {
        
    $arr[$i] = $arr[$i+1]; //immer um ein Element nach forne schieben
    }
    unset (
    $arr[$laenge-1]); // löschen des letzten gleides(ist dann ja 2mal vorhanden). 
    ist nich getstetet, sollte aber laufen, du kannst das ganze natürlich auch prima in ne Funktion einbinden!

    EDIT:

    1: Fehler im script korrigiert
    2: Kleinigkeit bei hand geklaut!

    Zuletzt geändert von Tartax; 24.06.2003, 20:15.
    Die Musikreview Seite

    hi, i'm a signature virus. copy me into your signature to help me spread.

    Kommentar


    • #3
      da wirst auch nix finden

      am besten nich auf feste zahlen legen die indexe

      mfg

      Kommentar


      • #4
        I hob do a wos:
        PHP-Code:
        <?
        $array[] = "wert1";
        $array[] = "wert2";
        $array[] = "wert3";
        $array[] = "wert4";
        $array[] = "wert5";

        // Schauen wir uns mal an, was im Array drinnen steht
        print_r ($array);
        print "<hr>";

        // Jetzt entfernen wir Element 2 (0 relativ)
        $index = 1;

        for($i=0;$i<count($array);$i++) {
           if ($i == $index) {
              unset($array[$i]);
           }
           if(!isset($array[$i])) {
              $array[$i] = $array[$i+1];
              unset($array[$i+1]);
           }
        }

        // Und, ist es noch da?
        print_r ($array);

        Kommentar


        • #5
          aber warum geht meines denn nich?
          Die Musikreview Seite

          hi, i'm a signature virus. copy me into your signature to help me spread.

          Kommentar


          • #6
            ich weis net aber eure script verursachen irgendwie bugs und ich weis net wie! also der von tar geht garnet und der andere ohne läuft das script bis dahin fehlerfrei, mit da kommen lauter komische fehler! "undef. offset 1 & 5"

            weiß einer why!? und wenn ich 1 lösch, löscht er bei mir auch 2?!

            ich bin total verwirrt...
            Man lernt nie aus...

            ...und wenn man's doch tut braucht man sich auch nicht schämen!

            Kommentar


            • #7
              Sowohl das Skript von Tartax, als auch meines funktionieren und produzieren fehlerfrei das, was Du wolltest.

              Ich habe beide soeben fehlerfrei testet.

              Für den Test von Tartax' Skript habe ich noch ein paar prints eingebaut:
              PHP-Code:
              <?
              <?
              $array[] = "wert1";
              $array[] = "wert2";
              $array[] = "wert3";
              $array[] = "wert4";
              $array[] = "wert5";

              // Schauen wir uns mal an, was im Array drinnen steht
              print_r ($array);
              print "<hr>";

              $zu_loeschen = 2; // zu löschende Nummer
              $laenge = count($array)-1; // ermitteln der Arraylänge
              for ($i = $zu_loeschen; $i <= $laenge-1; $i++) {
                  $array[$i] = $array[$i+1]; //immer um ein Element nach vorne schieben
              }
              unset ($array[$laenge-1]); // löschen des letzten gleides(ist dann ja 2mal vorhanden).

              // Und, ist es noch da?
              print_r ($array);

              Kommentar


              • #8
                PHP-Code:
                $array[]='a';
                $array[]='b';
                $array[]='c';
                $array[]='a';
                $array[]='e';
                $array[]='f';

                echo 
                '<pre>';
                print_r($array);
                echo 
                '<hr />';
                unset(
                $array[2]);
                print_r($array);
                echo 
                '<hr />';
                $array=array_merge($array,NULL);
                print_r($array);
                echo 
                '</pre>'
                fällt dir was auf?
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  Ergebnis:
                  PHP-Code:
                  Array
                  (
                      [
                  0] => a
                      
                  [1] => b
                      
                  [2] => c
                      
                  [3] => a
                      
                  [4] => e
                      
                  [5] => f
                  )
                  --------------------------------------------------------------------------------
                  Array
                  (
                      [
                  0] => a
                      
                  [1] => b
                      
                  [3] => a
                      
                  [4] => e
                      
                  [5] => f
                  )
                  --------------------------------------------------------------------------------
                  Array
                  (
                      [
                  0] => a
                      
                  [1] => b
                      
                  [2] => a
                      
                  [3] => e
                      
                  [4] => f

                  Irgendwie ist das noch kürzer und eleganter (aber wenig spektakulär)

                  Kommentar


                  • #10
                    ging eigentlich in richtung BloodReaver, aber ich mal nich so sein... *g*

                    das geht afair nur bei numerischen indizes, sobal ein assoziatives array verwendet wird, fall ich auf die nase, kann mich aber auch täuschen
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar

                    Lädt...
                    X