Avatar billede storkie Nybegynder
28. august 2005 - 21:23 Der er 13 kommentarer og
1 løsning

Tælle array

Hej

Jeg har dette array:
$hej = "1,2,3,4";
$array = array($hej);
echo count($array);
Problemet er at den tæller det som værende 1.
Men det skulle gerne give 4.

Hvorfor virker det ikke?
Avatar billede erikjacobsen Ekspert
28. august 2005 - 21:24 #1
Det er et array bestående af en streng. Hvad er det du vil - når det ikke bare er sådan et lille eksempel?
Avatar billede jaw Nybegynder
28. august 2005 - 21:25 #2
Tror du ikke du mener:

$array = array(1, 2, 3, 4);

?

Som erik siger, så er $hej nu en streng med teksten "1, 2, 3, 4";
Avatar billede nielle Nybegynder
28. august 2005 - 21:26 #3
$hej = "1,2,3,4";
$array = array($hej);

- er ikke det samme som:

$array = array(1,2,3,4);
Avatar billede erikjacobsen Ekspert
28. august 2005 - 21:27 #4
Ja, eller

  $array=split(',','1,2,3,4');

Men lad os høre hvad spørgeren vil.
Avatar billede storkie Nybegynder
28. august 2005 - 21:35 #5
<?
$hej = "1,2,3,4";
$array = array($hej);
echo count($array);
?>

Det er sådan det ser du. Det viser 1

<?
$array = array(1,2,3,4);
echo count($array);
?>

Det viser 4

Med det er den øverste jeg skal bruge, da jeg henter tallene fra en database så f.eks:

<?
$array = array($row[felt]);
echo count($array);
?>

Hvis felt det indeholder 1,2,3,4, så giver det stadig 1
Avatar billede jaw Nybegynder
28. august 2005 - 21:38 #6
Så vil jeg mene, at en mulighed er:

$hej = "1, 2, 3, 4";
$array = array();
foreach(explode(",", $hej) as $v) {
  $array[] = $v;
}
echo count($array);
Avatar billede erikjacobsen Ekspert
28. august 2005 - 21:38 #7
Så skal du bruge split.
Det er nu ikke så kønt at have lister af værdier i et felt i en tabel, men nogle gange kan det da forsvares.
Avatar billede erikjacobsen Ekspert
28. august 2005 - 21:39 #8
<?
$array = split(',',$row['felt']);
echo count($array);
?>
Avatar billede storkie Nybegynder
28. august 2005 - 21:53 #9
Jeg siger tak til jer begge.
Jeg valgte at bruge Eriks, da den så mest simpel ud.

Med Jaw's virker også.
Avatar billede storkie Nybegynder
28. august 2005 - 21:54 #10
Smid et svar begge to
Avatar billede erikjacobsen Ekspert
28. august 2005 - 21:56 #11
Ingen point til mig, tak.
Avatar billede jaw Nybegynder
28. august 2005 - 21:57 #12
Selv tak.
Avatar billede nielle Nybegynder
28. august 2005 - 22:59 #13
jaw> Det var da en dejlig kompliceret måde at sktrive:

$hej = "1, 2, 3, 4";
$array = explode(",", $hej);

- på ;^)


PS: Ifølge manualen er det mere effektivt at bruge explode() fremfor split().
Avatar billede jaw Nybegynder
28. august 2005 - 23:05 #14
Hov ja, selvfølgelig havde den været mere snedig :D (Jeg er lidt træt...) Takker.
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