Automatisch ID

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

  • Automatisch ID

    Steh grade voll aufm Schlauch. Habe folgende Session:
    PHP-Code:
    $_SESSION['newMenu'][1]['id'] = 1;
    $_SESSION['newMenu'][2]['id'] = 2;
    $_SESSION['newMenu'][3]['id'] = 3;

    // und so weiter // 
    Wenn jetzt bzw. $_SESSION['newMenu'][2]['id'] = 2; gelöscht wird, sollen alle anderen neu Sortiert werden. also soll das Ergebnis so aussehen:
    PHP-Code:
    $_SESSION['newMenu'][1]['id'] = 1;
    $_SESSION['newMenu'][2]['id'] = 3
    Nur stehe ich grade voll aufm schlauch wie ich das umsetze ...

    Thx 4 Help
    Signatur-Text ...

  • #2
    array_merge() wird die Keys eines nummerisch indizierten Arrays neu anordnen (wenn Lücken bestehen)
    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


    • #3
      kk soweit gelesen und verstanden nur kapier ich imo net wie ich bei

      $_SESSION['newMenu'][3]['id'] = 3;

      die $_SESSION['newMenu'] [3] zur $_SESSION['newMenu'][2] machen kann - ich weiß auch vorher nicht wieviele $_SESSION['newMenu'] vorhanden sind ...
      Signatur-Text ...

      Kommentar


      • #4
        Das Problem ist vielmehr, dass ein sauber indiziertes Array mit 0 und nicht 1 als erstem Element beginnt.
        PHP-Code:
        $arr['newMenu'][1]['id'] = 1;
        $arr['newMenu'][2]['id'] = 2;
        $arr['newMenu'][3]['id'] = 3;

        $arr['newMenu'][4]['id'] = 1;
        $arr['newMenu'][5]['id'] = 2;
        $arr['newMenu'][6]['id'] = 3;

        $arr['newMenu'][7]['id'] = 1;
        $arr['newMenu'][8]['id'] = 2;
        $arr['newMenu'][9]['id'] = 3;
        var_dump($arr);
        unset(
        $arr['newMenu'][2],$arr['newMenu'][7],$arr['newMenu'][5],$arr['newMenu'][8]);
        echo 
        '<br /><br />';
        var_dump($arr);
        $arr['newMenu'] = array_merge($arr['newMenu'],array());
        echo 
        '<br /><br />';
        var_dump($arr); 
        obiger Code funzt (nur hat das "neue" Array als Keys 0 und 1 und nicht 1 und 2 ,aber die Keys bestehen ohne Lücke)
        http://tobisworld.ch/misc/test/array_merge.php
        Ausgabe
        Code:
        array(1) { ["newMenu"]=> array(5) {
        [0]=> array(1) { ["id"]=> int(1) } 
        [1]=> array(1) { ["id"]=> int(3) }
        [2]=> array(1) { ["id"]=> int(1) } 
        [3]=> array(1) { ["id"]=> int(3) }
        [4]=> array(1) { ["id"]=> int(3) } } }
        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


        • #5
          Statt
          PHP-Code:
          array_merge($arr['newMenu'],array()); 
          kannst du besser
          PHP-Code:
          array_values($arr['newMenu']); 
          verwenden!

          Kommentar


          • #6
            @PHP-Desaster:

            Warum? Könnte ja theoretisch nur um Geschwindigkeit gehen, aber ist das soviel schneller?

            PHP-Code:
             array_merge($arr['newMenu']); 
            Reicht ja auch schon, ansich..

            mfg

            Kommentar


            • #7
              COOOOOOOL - Danke !!! nu hats funktioniert - Mahan ich stand auch eben voll auf der Leitung Danke nochmal
              Signatur-Text ...

              Kommentar

              Lädt...
              X