PDA

Bekijk Volledige Versie : [PHP] array probleem



Martijn
28/10/03, 09:30
Hoi,

ik heb een probleempje met het tonen van waarden in een array. Ik heb een
pagina waarin met gegevens uit een database een variabele wordt gemaakt die
ik wil gebruiken als array. Bijvoorbeeld:

$string = (3=>50,4=>60,5=>70,6=>80);

Vervolgens:

$array = array($string);
foreach($array as $index=>$data){
echo $index." totaal: ".$data."<br>";

Wanneer ik dit script test krijgt de $data variabele de waarde:
3=>50,4=>60,5=>70,6=>80

Wanneer ik 3=>50,4=>60,5=>70,6=>80 direct invoer in het $array veld dan
krijg ik wèl de gewenste lijst.

Iemand een idee hoe ik de waarde van $string naar de array functie kan
brengen??

Bij voorbaat dank,

Martijn

Daniel Tryba
28/10/03, 11:15
Martijn <vwdes@planetgeenspam.nl> wrote:
> Hoi,
>
> ik heb een probleempje met het tonen van waarden in een array. Ik heb een
> pagina waarin met gegevens uit een database een variabele wordt gemaakt die
> ik wil gebruiken als array. Bijvoorbeeld:
>
> $string = (3=>50,4=>60,5=>70,6=>80);

Aha, je loopt tegen een symptoom aan. Het echte probleem is dat je
"eigen" manier hebt om arrays te creeeren.

> $array = array($string);
> foreach($array as $index=>$data){
> echo $index." totaal: ".$data."<br>";
>
> Wanneer ik dit script test krijgt de $data variabele de waarde:
> 3=>50,4=>60,5=>70,6=>80
>
> Wanneer ik 3=>50,4=>60,5=>70,6=>80 direct invoer in het $array veld dan
> krijg ik w?l de gewenste lijst.

Nogal logisch, je hebt een string in een array geduwd.

3 oplossingen:
-maak een array mbt de gegevens uit de database (waarom stop je die
gegevens nu in een string?
-kjik naar het formaat van serialize/unserialize
-gebruik eval, maar dat lijkt me ten zeerste af te raden.

--

Daniel Tryba

Martijn
28/10/03, 12:30
> -maak een array mbt de gegevens uit de database (waarom stop je die
> gegevens nu in een string?

Ik wil eerst van alle records uit de dbase een string maken om daar
vervolgens een array van te maken. Enig idee hoe ik dan van die string een
array maak?

Martijn

Ronald Klip
28/10/03, 12:45
Martijn schreef:
> > -maak een array mbt de gegevens uit de database (waarom stop je die
> > gegevens nu in een string?
>
> Ik wil eerst van alle records uit de dbase een string maken om daar
> vervolgens een array van te maken. Enig idee hoe ik dan van die string een
> array maak?

Als je verder niets met die string doet, lijkt je werkwijze me wat
omslachtig.

Maar goed, string -> array: explode()

--
groet, Ronald

Daniel Tryba
28/10/03, 12:45
Martijn <vwdes@planetgeenspam.nl> wrote:
>> -maak een array mbt de gegevens uit de database (waarom stop je die
>> gegevens nu in een string?
>
> Ik wil eerst van alle records uit de dbase een string maken om daar
> vervolgens een array van te maken.

Waarom? Lijkt me een verspilling van moeite, tenzij je nog iets met de
string wil doen.

> Enig idee hoe ik dan van die string een array maak?

Met de 2 andere oplossingen die ik al genoemd heb!

--

Daniel Tryba

Michiel de Roo
28/10/03, 18:00
Martijn wrote:
> Hoi,
>
> ik heb een probleempje met het tonen van waarden in een array. Ik heb een
> pagina waarin met gegevens uit een database een variabele wordt gemaakt die
> ik wil gebruiken als array. Bijvoorbeeld:
>
> $string = (3=>50,4=>60,5=>70,6=>80);
>
> Vervolgens:
>
> $array = array($string);
> foreach($array as $index=>$data){
> echo $index." totaal: ".$data."<br>";
>
> Wanneer ik dit script test krijgt de $data variabele de waarde:
> 3=>50,4=>60,5=>70,6=>80
>
> Wanneer ik 3=>50,4=>60,5=>70,6=>80 direct invoer in het $array veld dan
> krijg ik wèl de gewenste lijst.
>
> Iemand een idee hoe ik de waarde van $string naar de array functie kan
> brengen??
>
> Bij voorbaat dank,
>
> Martijn
>
>


Zoiets ?

<?
$string = "(3=>50,4=>60,5=>70,6=>80)";

eval("\$array = array" . $string . ";");
foreach($array as $index=>$data){
echo $index." totaal: ".$data."<br>";
}
?>


Output:
3 totaal: 50
4 totaal: 60
5 totaal: 70
6 totaal: 80



Michiel.

Martijn
28/10/03, 19:15
> Zoiets ?

Inderdaad, dankjewel!

Martijn