Avatar billede kagehuset Nybegynder
05. januar 2004 - 21:17 Der er 11 kommentarer og
2 løsninger

Fjerne tomme pladser i array

Hey

Jeg har et array med hvor nogle af værdierne er tomme - kan jeg smide de værdier som ikke er tomme over i et nyt array, eller kan jeg fjerne de tomme?

Går udfra jeg skal bruge noget noget is_null eller isset - men kan ikke helt få grejet noget brugbart...

mvh
Mads
Avatar billede Slettet bruger
05. januar 2004 - 21:21 #1
Eksempelvis:

foreach($old_array as $key => $val) {
  if (!empty($val))
      $new_array[$key] = $val;
}
Avatar billede nak-m Nybegynder
05. januar 2004 - 21:25 #2
Eller:

foreach ($liste as $key => $value) {
  if (is_null($value)) {
    unset($liste[$key]);
  }
}
Avatar billede nak-m Nybegynder
05. januar 2004 - 21:27 #3
(på den måde beholder du det gamle array)
Avatar billede Slettet bruger
05. januar 2004 - 21:30 #4
Vær opmærksom på at en tom streng "" ikke er NULL. Så jeg ville bruge empty().
Avatar billede Slettet bruger
05. januar 2004 - 21:30 #5
Eller, det kommer jo an på, hvad du vil. Men nu ved du det :)
http://dk.php.net/manual/en/language.types.null.php
Avatar billede nak-m Nybegynder
05. januar 2004 - 21:31 #6
dette er måske bedre? :)

foreach ($my as $key => $value) {
  if (is_null($value) || empty($value)) {
    unset($my[$key]);
  }
}
Avatar billede nak-m Nybegynder
05. januar 2004 - 21:31 #7
eller måske bare:

foreach ($my as $key => $value) {
  if (empty($value)) {
    unset($my[$key]);
  }
}
Avatar billede Slettet bruger
05. januar 2004 - 21:32 #8
Drop is_null. empty retunerer også sand, hvis værdien er NULL.
Avatar billede kagehuset Nybegynder
05. januar 2004 - 21:41 #9
Hey igen

Ved ikke om jeg har forklaret mig ordenligt...

Jeg får stadig smidt ud af der i værdi [0] => x og [3] => y - ville gerne have det til at være [0] => x og [1] => y - altså så de kommer i rækkefølde...

mvh
Mads
Avatar billede Slettet bruger
05. januar 2004 - 21:45 #10
Så skal du bruge et nyt array. Det første eksempel jeg skrev.
Avatar billede Slettet bruger
05. januar 2004 - 21:46 #11
Ups, og så kan du lige rette det til:

foreach($old_array as $val) {
  if (!empty($val))
      $new_array[] = $val;
}
Avatar billede kagehuset Nybegynder
05. januar 2004 - 21:51 #12
Yesser! Tak skal du ha!

I får lige point begge to :-)

mvh
Mads
Avatar billede nak-m Nybegynder
05. januar 2004 - 23:38 #13
tak for point :)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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