[php] rij uit 2-dim. array verwijderen

Pagina: 1
Acties:

  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 03-02 15:29
Ik gebruik nu een 2 dim. array. Hieruit wil ik naar keuze een bepaalde rij $klant[2] bv verwijderen en in een archief plaatsen.

Het in een archief plaatsen is het probleem niet, maar hoe verwijder ik een hele rij uit een array?

Ik gebruik nu $klant[2] = ""; maar dan blijft er nog wat achter wat niet de bedoeling is.

Ik heb wel een vaag idee om merge() te gebruiken, maar ik weet niet of dat wel zo mooi werkt...

Ook Knor is aangestoken met het ligfietsvirus!


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

unset()

Rustacean


  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 03-02 15:29
tnx

Ook Knor is aangestoken met het ligfietsvirus!


  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 03-02 15:29
Ok, dat verwijderen lukt nu dus wel, het probleem ligt m nu als ik uit een array ergens een tussenin verwijder, dan gaat het fout.

Wat ik daarvoor nu heb bedacht (maar niet werkt) is dit:
code:
1
2
3
4
5
6
7
if ($delete == true) {
    $klant[$h_klant] = $klant[sizeof($klant)+1]; //$h_klant geeft de index aan in het array
    for ($x = $h_klant; sizeof($klant); $x++) {
        $klant[$x] = $klant[$x+1];
    } 
    unset($klant[sizeof($klant)+1]);
}

Echter blijft ie nu in deze loop hangen. Is hier een betere oplossing voor om 1 rij te verwijderen en de rest op te schuiven?

Ook Knor is aangestoken met het ligfietsvirus!


  • TiG
  • Registratie: Maart 2001
  • Laatst online: 29-06 14:19

TiG

U gaat door voor de retorische vraag...


  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 03-02 15:29
tnx again,
resultaat:
code:
1
2
3
4
if ($delete == true) {
    $eraf = count($klant) - $h_klant - 1;
    array_splice ($klant, $h_klant, -$eraf);
}

Ook Knor is aangestoken met het ligfietsvirus!


  • TiG
  • Registratie: Maart 2001
  • Laatst online: 29-06 14:19

TiG

Als je maar 1 rij wilt verwijderen kun je toch voor -$eraf ook gewoon 1 invullen...

U gaat door voor de retorische vraag...


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Ik zou direct na unset() een array_values() doen. Dat werkt echter alleen als je een gewone numerieke index hebt.

Rustacean


  • Grum
  • Registratie: Juni 2001
  • Niet online
Ze hebben niet voor nix een splice functie uitgevonden hoor ;)
Pagina: 1