Wie lösche ich ein array-element???

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

  • Wie lösche ich ein array-element???

    Hallo zusammen,

    bin kurz vor der Verzweiflung. Wie kann ich ein einzelnes Element aus einem array löschen (mit array_shift geht leider nur das erste element) ?

    Habe leider überhaupt keine Idee mehr!

    Bin euch superdankbar, wenn Ihr mir helfen könntet

    Gruss

    Thommy
    www.unister.de

    what students want!

  • #2
    So sollte es gehen

    unset ($Variable['irgendwas']);

    Gruß
    Arni
    Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

    Kommentar


    • #3
      Mach auch gerade damit rum, aber unset() scheint den Index nicht runter zu setzen. Wenn ich das Element lösche, sollen auch alle nachfolgenden Indices um 1 erniedrigt werden.
      Cocoa Entwicklertraining - Alles für die Apfelzucht

      Kommentar


      • #4
        soviel ich weiss gibts dafür keine funktion... aber vielleicht könnte man ja eine selber schreiben...

        Kommentar


        • #5
          war mir so schrecklich langweilig heut nachmittag, hab sogar eine mögliche lösung geschrieben:
          PHP-Code:
          <?php
          function newindices($array){
              
          $i="0";
              foreach (
          $array as $wert){
              global 
          $arrayneu;
              
          $arrayneu[$i]=$wert;
              
          $i++;    
              }
          }

          echo 
          "ursprünglicher array:<br />";
          $array = array("hallo ""ich ""heisse ""gothmog");
          print_r($array);
          echo 
          "<br /><br />";
          unset(
          $array[1]);
          echo 
          "nach unset[1]:<br />";
          print_r($array);
          echo 
          "<br /><br />";
          newindices($array);
          echo 
          "array nach durchführung der funktion:<br />";
          print_r($arrayneu);
          ?>
          ich bin noch zimlich frisch im "business" :P , falls ich irgendwas eleganter hätte lösen können wäre ich nicht unglücklich wenn mich jemand darauf hinweisen könnte..

          Kommentar


          • #6
            so kannst du dir zumindest das belegen einer neuen Variable sparen

            und das $i++ kannst du auch im array index machen

            PHP-Code:
            <?php
            function newindices(&$array) {
                
            $i=0;
                foreach (
            $array as $wert){
                    
            $arrayneu[$i++] = $wert;
                }
                
            $array $arrayneu;
            }

            echo 
            "ursprünglicher array:<br />";
            $array = array("hallo ""ich ""heisse ""gothmog");
            print_r($array);
            echo 
            "<br /><br />";
            unset(
            $array[1]);
            echo 
            "nach unset[1]:<br />";
            print_r($array);
            echo 
            "<br /><br />";
            newindices($array);
            echo 
            "array nach durchführung der funktion:<br />";
            print_r($array);
            ?>

            Kommentar


            • #7
              PHP-Code:
              $array = array("hallo ""ich ""heisse ""mrhappiness");
              echo 
              '<pre>';
              print_r($array);

              echo 
              "<hr />nach unset[1]:<br />";
              unset(
              $array[1]);
              print_r($array);

              echo 
              "<hr />array nach durchführung der funktion:<br />";
              $array=array_merge($array,NULL);
              print_r($array); 
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                ah!

                siehste, wieder was gelernt

                Kommentar


                • #9
                  jetzt noch meine Version:

                  PHP-Code:
                  <?php
                  function array_kick_bullshit($array,$pattern)
                  {
                  $i=0;$j=0;
                  while (
                  $array[$i])
                  {
                  if (
                  $array[$i]!=$pattern){$arrayneu[$j]=$array[$i];$j++;}
                  $i++;
                  }
                  return 
                  $arrayneu;
                  }




                  $array=array('hallo','bullshit','text');
                  $arrayneu=array_kick_bullshit($array,"bullshit");
                  echo 
                  "Alt:<br>";
                  print_r($array);
                  echo 
                  "<br>Alt:<br>";
                  print_r($arrayneu);
                  ?>
                  jetzt ham wer alle mal
                  Cocoa Entwicklertraining - Alles für die Apfelzucht

                  Kommentar


                  • #10
                    aha!

                    ich setz noch einen druf und will nur EIN element aus dem array löschen.

                    PHP-Code:
                    $articleIDs_arr = array(3,3,5,46);
                    $articleID 3   //soll EINMAL gelöscht werden
                    foreach($articleIDs_arr as $a) {
                       if (
                    $articleID != $a) {
                          
                    $new[] = $a;
                       }

                    es soll also hinterher "3,5,46" im array sein. meine version löscht ja immer alle $articleID aus dem array.

                    Helft mir auf die Sprünge... Dankeschööön!

                    Kommentar


                    • #11
                      PHP-Code:
                      foreach ($array as $key => $value)
                        if (
                      $value==3)
                        {
                          unset(
                      $array[$key]);
                          break;
                        } 
                      oder du schaust dir array_unique an
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        wenn ich dann ein array voller values habe, die gelöscht werden sollen,
                        mache ich das dann etwa so?
                        PHP-Code:
                        $array = array(1,2,3,4,5,6,7,8);
                        $unset_values=array(2,3,5,8);

                        foreach (
                        $array as $key => $value){

                          foreach (
                        $unset_values as $ukey =>$uvalue){

                            if (
                        $value==$uvalue) {
                              unset(
                        $array[$key]);
                              break;
                            }
                          }
                        }
                        array_merge($array,NULL); 
                        (-:
                        Bookmarks:·Bilder·Jobs·Recht·
                        kostenloser Webkataloge-Assistent

                        Kommentar


                        • #13
                          PHP-Code:
                          $array = array(1,2,3,4,5,6,7,8);
                          $unset_values=array(2,3,5,8);
                          $richtig=array_diff($array$unset_values); 
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #14
                            Danke
                            (-:
                            Bookmarks:·Bilder·Jobs·Recht·
                            kostenloser Webkataloge-Assistent

                            Kommentar

                            Lädt...
                            X