Werte aus Array löschen

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

  • Werte aus Array löschen

    Ich habe folgendes Problem mit der Bearbeitung zweier Arrays.

    Array 1, Auflistung aller Modelids (Keys), bei denen eine Kategorie gelöscht werden soll (Wert ist die ID der zu löschenden Kategorie):

    PHP-Code:
    Array
    (
        [
    5] => 144
        
    [7] => 155
        
    [8] => 207
        
    [9] => 46
        
    [12] => 58
        
    [16] => 164
        
    [17] => 157
        
    [22] => 213
        
    [18] => 156
        
    [24] => 95
        
    [26] => 96
        
    [19] => 195
        
    [49] => 219
        
    [50] => 212
        
    [51] => 211
        
    [52] => 215

    Array 2, Modelid (Key) mit den vorhandenen Kategorien (zweite Dimension->Wert), wobei hier dann gelöscht werden soll:

    PHP-Code:
    Array
    (
        [
    5] => Array
            (
                [
    0] => 1
                
    [1] => 2
                
    [2] => 29
                
    [3] => 30
                
    [4] => 31
                
    [5] => 32
                
    [6] => 33
                
    [7] => 34
                
    [8] => 136
                
    [9] => 138
                
    [10] => 139
                
    [11] => 144
                
    [12] => 189
                
    [13] => 190
                
    [14] => 191
                
    [15] => 193
            
    )

    Nun ist im Array 1 eine Key mit der 5 und dem Wert 144. Beim zweiten Array Key 5 soll in der Werteliste dann die 11/144 gelöscht werden, so das ich alle Werte in dem zweiten Array behalte, bis eben auf die, die in dem ersten Array drinnen stehen.

    Wer kann mir dazu einen Tipp geben, wie ich das ohne zig Schleifen erledigen kann?

    Gruß Uwe

  • #2
    Brauchst doch nur eine Schleife:

    - array1 durchlaufen
    - mit array_search den zu löschenden Key finden
    - und dann mit unset() löschen.

    Sowas findet man nicht, wenn man sich die Array-Funktionen ansieht?=

    Kommentar


    • #3
      Re: Werte aus Array löschen

      Ist doch nur eine einzige Schleife...
      Erstes Array durchgehen, gucken ob das Gesuchte im zweiten existiert - wenn ja raus, wenn nein nächstes Element

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        Damit geht das nun:

        PHP-Code:
                    foreach($ukatids AS $k=>$v){
                        
        $tmp array_search($v$oldids[$k]);
                        if(
        $tmp){
                            unset(
        $oldids[$k][$tmp]);
                        }
                    } 
        Manchmal reicht schon ein Wink mit dem Zaunspfahl, damit man in die richtige Richtung gehen kann.

        Danke Euch,
        Gruß Uwe

        Kommentar


        • #5
          PHP-Code:
          foreach($ukatids as $k => $v)
            if(
          $tmp array_search($v$oldids[$k]))
              unset(
          $oldids[$k][$tmp]); 

          Kommentar


          • #6
            eigentlich kann man sich doch array_search() und if sparen - einfach unset() und gut ist.

            Kommentar


            • #7
              Original geschrieben von 3DMax
              eigentlich kann man sich doch array_search() und if sparen - einfach unset() und gut ist.
              und wie willst du den key finden, der geunseted (derbes wort ) werden soll?
              **********
              arkos
              **********

              Kommentar


              • #8
                array_search wohl eher nicht. Über das if() lässt sich streiten...

                Kommentar


                • #9
                  Original geschrieben von TobiaZ
                  array_search wohl eher nicht.
                  sorry, hatte es nur überflogen, dachte der value des ersten arrays wäre der key des zweiten.
                  hast natürlich recht.[EDIT] und arkos auch

                  Kommentar


                  • #10
                    PHP-Code:
                    foreach($ukatids as $k => $v)
                      if((
                    $tmp array_search($v$oldids[$k])) !== false)
                        unset(
                    $oldids[$k][$tmp]); 
                    wäre richtig.

                    EDIT:

                    Extra-Klammern? Ich denke mal die sind nötig ... zumindest verschaffen sie dem Parser nötige Klarheit was zuerst und was dann.

                    Zuletzt geändert von ghostgambler; 21.09.2007, 18:16.

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar


                    • #11
                      japp

                      Kommentar

                      Lädt...
                      X