|
| 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
| |
|
|