Avatar billede michaeltryl Seniormester
30. september 2017 - 19:36 Der er 4 kommentarer og
1 løsning

Unset problem

JEg har dette array $valgte_array
Array ( [0] => hjerter-06 [1] => hjerter-09 [2] => hjerter-13 [3] => spar-01 [4] => spar-04 ) spar-04

og ønsker at slette f.eks. hjerter-13
jeg har et link som sender disse variabler
?fjern=2&fjerne=hjerter-13#kort
henter dem med GET og ved de bliver hentet korrekt
Jeg har så denne kode

if(!empty($fjern) && !empty($fjerne))
{
if (in_array($fjerne, $valgte_array))
  {
      unset($valgte_array[$fjerne]);
  }
}

som burde slette den valgte, med der sker intet.
kan i hjælpe
Avatar billede erikjacobsen Ekspert
30. september 2017 - 19:59 #1
Du skal sige unset ud fra nøglen, dvs    unset($valgte_array[2])  pg 2 tallet kan du finde på denne måde (utestet):

$pos = array_search($fjerne,$valgte_array);

if ($pos !== FALSE) {
    unset($valgte_array[$pos]);
}
Avatar billede michaeltryl Seniormester
30. september 2017 - 20:06 #2
Det vikede heller ikke, meget mystisk.
Avatar billede erikjacobsen Ekspert
30. september 2017 - 20:33 #3
Jo jo, det virker - mit forbehold med "utestet" er mere for en trykfejl, eller lignende. Se nu her - helt uden magi:

Koden

$valgte_array = ['hjerter-06','hjerter-09','hjerter-13','spar-04'];

print_r($valgte_array);
$fjerne = 'hjerter-13';

$pos = array_search($fjerne,$valgte_array);

if ($pos !== FALSE) {
    unset($valgte_array[$pos]);
}

print_r($valgte_array);


udskriver dette, hvor hjerter-13 er væk, helt som ventet:


Array
(
    [0] => hjerter-06
    [1] => hjerter-09
    [2] => hjerter-13
    [3] => spar-04
)
Array
(
    [0] => hjerter-06
    [1] => hjerter-09
    [3] => spar-04
)
Avatar billede michaeltryl Seniormester
01. oktober 2017 - 11:46 #4
meget mystisk nu virker det også her. tak for hjælpen :-)
Avatar billede erikjacobsen Ekspert
01. oktober 2017 - 12:07 #5
Det virker måske kun om dagen ;)

Hvis du ikke viol un-sette, kan du også fjerne elementet:

$pos = array_search($fjerne,$valgte_array);

if ($pos !== FALSE) {
    array_splice($valgte_array,$pos,1);
}

Som giver

Array
(
    [0] => hjerter-06
    [1] => hjerter-09
    [2] => spar-04
)

Der "mangler" altså ikke en indgang i dit array.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester