/ 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
arrayspørgsmål...
Fra : Steen Broelling


Dato : 01-04-02 06:28

Hej

Jeg har fået følgende til at virke, så jeg forstår det :)
Hiver en mængde data ud, hvoraf jeg så bl.a. kreerer en array() af
variablen $antal.

while ($row = mysql_fetch_array($result)) {
$datoen = $row['datoen'];
$init = $row['initialer'];
$antal = $row['nummer'];
$kvali = $row['kvalitet'];

$nisse[] = array($antal);
}

print_r(array_values($nisse));

Ovenstående resulterer f.eks. et output som nedenstående (alt efter
inputtet):

Array (
[0] => Array ( [0] => 23 )
[1] => Array ( [0] => 1 )
[2] => Array ( [0] => 332 )
[3] => Array ( [0] => 1 )
)

Men nu er mine spørgsmål så:
1. Ovennævnte while løbes igennem 73 gange, og kun sjældent vil det
give et resultat (måske 10-15 output), men hvordan får jeg puttet et
rundt 0 ind i arrayen, hvis whilen ikke indeholder data!??
Så det f.eks. ser sådan ud:

Array (
[0] => Array ( [0] => 23 )
[1] => Array ( [0] => 1 )
[2] => Array ( [0] => 0 )
[3] => Array ( [0] => 332 )
[4] => Array ( [0] => 1 )
[5] => Array ( [0] => 0 )
)

Altså at der vil være 73 af ovenstående, uanset mængden af data!??

Spørgsmål 2:
Når jeg har puttet $antal i mit array, kan jeg godt finde ud af at
hente en value med f.eks. print_r(array_values($nisse[1][0])); - men
hvordan henter jeg samtlige values uden keys!??

Det er en lang smøre (spørgsmål) her på en højhellig påskemandag, men
jeg håber nogen har mod på et svar :)

MVH Steen Brølling
../mail strix@mail.dk
../usr/local/home http://www.broelling.dk
"pete sets the pace to anything..."

 
 
Mads Lie Jensen (01-04-2002)
Kommentar
Fra : Mads Lie Jensen


Dato : 01-04-02 08:06

On Mon, 01 Apr 2002 07:27:53 +0200, Steen Broelling <strix@mail.dk>
wrote:

>Hej
>
>Jeg har fået følgende til at virke, så jeg forstår det :)
>Hiver en mængde data ud, hvoraf jeg så bl.a. kreerer en array() af
>variablen $antal.
>
>while ($row = mysql_fetch_array($result)) {
>$datoen = $row['datoen'];
>$init = $row['initialer'];
>$antal = $row['nummer'];
>$kvali = $row['kvalitet'];
>
>$nisse[] = array($antal);

Der er vel ingen grund til at lave $antal om til en array, der er jo
altid kun en enkelt.
Bruger du $nisse[] = $antal;
i stedet så kan du tilgå værdierne som $nisse[0], $nisse[1] osv.

Altså så print_r($nisse) ville blive:
Array(
[0] => 23,
[1] => 1
....
)

(Jeg kan ikke se nogen grund til at have en array med arrays i dit
tilfælge).
>Men nu er mine spørgsmål så:
>1. Ovennævnte while løbes igennem 73 gange, og kun sjældent vil det
>give et resultat (måske 10-15 output), men hvordan får jeg puttet et
>rundt 0 ind i arrayen, hvis whilen ikke indeholder data!??
>Så det f.eks. ser sådan ud:
>
>Array (
>[0] => Array ( [0] => 23 )

>Altså at der vil være 73 af ovenstående, uanset mængden af data!??

Brug f.eks en if som:
if ($antal == "") {
   $nisse[] = 0;
} else {
   $nisse = $antal;
}

>Spørgsmål 2:
>Når jeg har puttet $antal i mit array, kan jeg godt finde ud af at
>hente en value med f.eks. print_r(array_values($nisse[1][0])); - men
>hvordan henter jeg samtlige values uden keys!??

implode() - ligger alle array-elementerne sammen til en streng.
foreach ()-loop hvis du vil løbe alle elementer igennem et for et.


--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk

Directory Opus - nu også til windows - http://www.gpsoft.com.au

Steen Broelling (01-04-2002)
Kommentar
Fra : Steen Broelling


Dato : 01-04-02 08:36

On Mon, 01 Apr 2002 09:06:14 +0200, Mads Lie Jensen
<mads@gartneriet.dk> wrote:

>(Jeg kan ikke se nogen grund til at have en array med arrays i dit
>tilfælge).

Nej det har du jo sådan set ret i! :)

>Brug f.eks en if som:
>if ($antal == "") {
>   $nisse[] = 0;
>} else {
>   $nisse = $antal;
>}
>

Hmm. Det lykkes desværre ikke. Jeg får kun de 4 $nisser hvori der er
en value. Altså når jeg prøver følgende:

while ($row = mysql_fetch_array($result)) {
$datoen = $row['datoen'];
$init = $row['initialer'];
$antal = $row['nummer'];
$kvali = $row['kvalitet'];

if ($antal == "") {
$nisse[] = 0;
}
else {
$nisse[] = $antal;
}
}

MVH Steen Brølling
../mail strix@mail.dk
../usr/local/home http://www.broelling.dk
"pete sets the pace to anything..."

Mads Lie Jensen (01-04-2002)
Kommentar
Fra : Mads Lie Jensen


Dato : 01-04-02 09:19

On Mon, 01 Apr 2002 09:36:27 +0200, Steen Broelling <strix@mail.dk>
wrote:

>>Brug f.eks en if som:
>>if ($antal == "") {
>>   $nisse[] = 0;
>>} else {
>>   $nisse = $antal;
>>}
>>
>
>Hmm. Det lykkes desværre ikke. Jeg får kun de 4 $nisser hvori der er
>en value. Altså når jeg prøver følgende:

Hmm..
Hvis du så laver en

echo count($nisse);

efter dit while-loop, hvad siger den så?
Hvad hvis du bruger en

print_r($nisse);

i stedet for print_r(array_values($nisse)); som jeg så du brugte andre
steder.

--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk

Directory Opus - nu også til windows - http://www.gpsoft.com.au

Steen Broelling (01-04-2002)
Kommentar
Fra : Steen Broelling


Dato : 01-04-02 11:02

On Mon, 01 Apr 2002 10:19:04 +0200, Mads Lie Jensen
<mads@gartneriet.dk> wrote:

>Hmm..
>Hvis du så laver en
>
>echo count($nisse);
>
>efter dit while-loop, hvad siger den så?

Printer "4" hvilket også er det den outputter. Det er lige som om den
ikke vil ha' noget at gøre med de records som er "tomme"!??

>Hvad hvis du bruger en
>
>print_r($nisse);
>
>i stedet for print_r(array_values($nisse)); som jeg så du brugte andre
>steder.

Det gir' nøjagtig samme resultat:
Array (
[0] =>23
[1] =>1
[2] =>332
[3] =>1
)


../mail strix@mail.dk
../usr/local/home http://www.broelling.dk
"pete sets the pace to anything..."

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408952
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste