Foreach returnerer noget uhensigsmæssigt.

Tags:    php

Hej Udviklere!

Jeg har et array der ser super ud når jeg udskriver det med print_r() men når jeg kører en foreach løkke på det går det helt galt, jeg har vedhæftet hvordan arrayet og foreach løkken ser ud.

Array: print_r($allJobs['pendingJobs'])
Fold kodeboks ind/udKode 


Foreach loop:
Fold kodeboks ind/udPHP kode 


Overstående foreach udskriver denne streng: 22FFFF 3311442211hh110000ll som, såvidt jeg kan se er den første karakter i alle arrayets forskellige variabler.

Jeg har lavet rigtig mange foreach løkker før, og dette er altså den første der har voldt mig problemer jeg ikke har kunne løse.

Håber I kan hjælpe. ;)



5 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 26 karma
Sorter efter stemmer Sorter efter dato
Fold kodeboks ind/udKode 


Fold kodeboks ind/udKode 


Gi'r det mening?



Det fordi du bruge din foreach til noget der reelt ikke er en løkke.

'jobname' er et indeks i $allJobs, det du gør er at indekser hver enkelt værdi i allJobs med 'jobname'.
echo $allJobs['pendingJobs']['jobname'];

Eller du har opbygget dit $allJobs array forkert, hvad noget jo godt kan tyde på da du har navngivet den i flertal, men det print_r viser er vel reeelt kun et job.



$test = array(
"key" => "value,
"key2" => "value2",
"key3" => "value3");

foreach($test as $key => $value){
echo "$key = $value";
}

håber det giver lidt mening.

Og btw så kunne det se ud som du bruger mysql_fetch_array til at lave dit array med, hvis du bruger mysql_fetch_assoc istedet får du ikke 1,2,3,4 osv i dit array, ser ikke ud til du bruger dem alligevel :)



Indlæg senest redigeret d. 15.02.2012 17:33 af Bruger #3427
mhm, sådan da men ville sætte pris på en forklaring. :)



Tror jeg forstår det.

Det print_r viser er kun et job ja, der er kun 1 job i databasen der passer til det SQL statement jeg har lavet for at hente jobbene.





t