/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
fjern et element fra et array
Fra : Thomas Purkaer


Dato : 18-02-02 10:09

Hej

Hvordan fjerner bedst et element fra et array?

Har lavet en indkøbskurv i et array

$basket[1][0] indeholder varenumret
$basket[1][1] indehold antallet af varerne

jeg bruger nu unset($basket[1]); for at fjerne denne vare linie men er der
flerer varer i kurven bliver den en tom post i mit array.

Hvad gør jeg forkert?

/Thomas



 
 
Niels Andersen (18-02-2002)
Kommentar
Fra : Niels Andersen


Dato : 18-02-02 10:15

"Thomas Purkaer" <thomas@mobilli.dk> wrote in message
news:3c70c4b2$0$62846$edfadb0f@dspool01.news.tele.dk...
> Hvordan fjerner bedst et element fra et array?
unset()

> $basket[1][0] indeholder varenumret
> $basket[1][1] indehold antallet af varerne
>
> jeg bruger nu unset($basket[1]); for at fjerne denne vare linie men er der
> flerer varer i kurven bliver den en tom post i mit array.

Er der en tom post, eller går den direkte fra 0 til 2?
Måske du læser dit array forkert?

--
Mvh.

Niels Andersen



Thomas Purkaer (18-02-2002)
Kommentar
Fra : Thomas Purkaer


Dato : 18-02-02 10:31

"Niels Andersen" <niels-usenet@myplace.dk> skrev i en meddelelse
news:pC3c8.15157$5L3.657816@news010.worldonline.dk...

> Er der en tom post, eller går den direkte fra 0 til 2?
> Måske du læser dit array forkert?

Der bliver i hvert fald tomme poster.

Jeg prøver lige at komme med nogle kode eks.

når jeg lister min indkøbskurver kan brugerne rettet i nogle tekst felter
der hedder

basket0
basket1

osv indtil der ikke er flere elementer i arrayet.

når jeg vil opdaterer mit array bruger jeg følgende kode:

for ($x=0; $x<count($basket); $x++)
{

$basket[$x][1] = ${'basket'.$x};

if ($basket[$x][1] == 0)
{
unset($basket[$x]);

}

}

Det virker som om det er lidt tlfældigt hvilke elementer den fjerner når jeg
skriver 0 i et af antal felterne.

/Thomas



Niels Andersen (18-02-2002)
Kommentar
Fra : Niels Andersen


Dato : 18-02-02 10:41

"Thomas Purkaer" <thomas@mobilli.dk> wrote in message
news:3c70c9bc$0$62885$edfadb0f@dspool01.news.tele.dk...
> > Er der en tom post, eller går den direkte fra 0 til 2?
> > Måske du læser dit array forkert?
> Der bliver i hvert fald tomme poster.

Er du sikker?

Hvordan læser du dit array?

> for ($x=0; $x<count($basket); $x++)

Den forudsætter, at elementerne i array er numereret fra 0 og opefter, uden
spring. Sådan er det ikke i et array, hvor man fjerner elementer.

For fx. foreach i stedet.

foreach($basket as $x=>$dummy) {

--
Mvh.

Niels Andersen



Thomas Purkaer (18-02-2002)
Kommentar
Fra : Thomas Purkaer


Dato : 18-02-02 10:58

"Niels Andersen" <niels-usenet@myplace.dk> skrev i en meddelelse
news:i%3c8.15165$5L3.658621@news010.worldonline.dk...

> Den forudsætter, at elementerne i array er numereret fra 0 og opefter,
uden
> spring. Sådan er det ikke i et array, hvor man fjerner elementer.
>
> For fx. foreach i stedet.
>
> foreach($basket as $x=>$dummy) {

Okay måske et dumt spørgsmål men hvordan arbejder jeg så med mit 2d array
hvis jeg benytter foreach metoden?

Altså hvordan opdaterer jeg antal af $basket[1][1] = 2 hvordan laver jeg så
den til 3 der i?

arghhh håber du/i forstår hvad jeg mener

/Thomas



Niels Andersen (18-02-2002)
Kommentar
Fra : Niels Andersen


Dato : 18-02-02 11:32

"Thomas Purkaer" <thomas@mobilli.dk> wrote in message
news:3c70d024$0$62890$edfadb0f@dspool01.news.tele.dk...
> > foreach($basket as $x=>$dummy) {
> Okay måske et dumt spørgsmål men hvordan arbejder jeg så med mit 2d array
> hvis jeg benytter foreach metoden?

Brug "foreach" som jeg skriver, i stedet for din "for". Resten behøver du
ikke at ændre.


Lad os sige, at et array har følgende keys:
1, 3, 7, 14, 27

Din "for":
for ($x=0; $x<count($basket); $x++)
Vil køre loopen 5 gange, med disse x-værdier:
0, 1, 2, 3, 4
Du vil så ramme to af de 5 elementer.

Min "foreach" der imod:
foreach($basket as $x=>$dummy)
Vil også køre loopen 5 gange, men med disse x-værdier:
1, 3, 7, 14, 27
Bingo!

--
Mvh.

Niels Andersen



Thomas Purkaer (18-02-2002)
Kommentar
Fra : Thomas Purkaer


Dato : 18-02-02 11:43

"Niels Andersen" <niels-usenet@myplace.dk> skrev i en meddelelse
news:LK4c8.15168$5L3.660404@news010.worldonline.dk...

> Brug "foreach" som jeg skriver, i stedet for din "for". Resten behøver du
> ikke at ændre.

Mmmkay

> Min "foreach" der imod:
> foreach($basket as $x=>$dummy)
> Vil også køre loopen 5 gange, men med disse x-værdier:
> 1, 3, 7, 14, 27
> Bingo!

Vil bare lige sige det køre nu.

Mange tak for hjælpen

/Thomas



Søg
Reklame
Statistik
Spørgsmål : 177505
Tips : 31968
Nyheder : 719565
Indlæg : 6408554
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste