Gå til innhold

Litt array hjelp.


Anbefalte innlegg

Hei, jeg er ganske ny i php. Eller, har kunnet litt en god stund, men er bare i underkant av en uke siden jeg begynte for alvor å teste meg fram i det. Nå har jeg kommet dit at jeg har lært meg litt om array() funksjonen. Der har jeg virkelig støtt på et lite problem. Jeg prøver og lage et lite skjema der jeg skal trykke inn et numer, da skal den verdien jeg trykker inn kopieres inn via $_GET funksjonen til test.php slik at dette skal fungere:

echo $users['bvalg'];

Men når jeg tester filene, og trykker inn verdien i index.php printes ingenting ut i "test.php" filen.

 

Her er filene, filnavnene burde vært litt motsatt, men drit i det. Har jo ingenting og si. Her har dere de to scriptene:

 

test.php

 

<html>
<title>Inngangstada</title>
<form action="index.php" method="get">
<b>Skriv inn valg, 0-3...</b>
<input type="text" name="bvalg" value="">
</form>
</html>

 

index.php

 

<?php
$brukervalg = $_GET['bvalg'];
$users = array(0 => "Alta", "Fauske", "Steigen", "Bodø");
echo $users['bvalg'];
?>

Edit:[

Nå har jeg endre linjen

echo $users['bvalg']; til echo $users['$brukervalg'];, men får fortsatt ingenting printet ut. Bare en blank side...

 

Håper dere skjønte problemstillingen. Dette er ikke noe viktig problem, fordi det er som sagt bare jeg som vil teste meg fram, løse litt problemer og skjønne litt om de forskjellige feltene i faget.

 

Takk for hjelp

Endret av [email protected]
Lenke til kommentar
Videoannonse
Annonse
Hei, jeg er ganske ny i php. Eller, har kunnet litt en god stund, men er bare i underkant av en uke siden jeg begynte for alvor å teste meg fram i det. Nå har jeg kommet dit at jeg har lært meg litt om array() funksjonen. Der har jeg virkelig støtt på et lite problem. Jeg prøver og lage et lite skjema der jeg skal trykke inn et numer, da skal den verdien jeg trykker inn kopieres inn  via $_GET funksjonen til test.php slik at dette skal fungere:

echo $users['bvalg'];

Men når jeg tester filene, og trykker inn verdien i index.php printes ingenting ut i "test.php" filen.

 

Her er filene, filnavnene burde vært litt motsatt, men drit i det. Har jo ingenting og si. Her har dere de to scriptene:

 

test.php

 

<html>
<title>Inngangstada</title>
<form action="index.php" method="get">
<b>Skriv inn valg, 0-3...</b>
<input type="text" name="bvalg" value="">
</form>
</html>

 

index.php

 

<?php
$brukervalg = $_GET['bvalg'];
$users = array(0 => "Alta", "Fauske", "Steigen", "Bodø");
echo $users['bvalg'];
?>

 

Håper dere skjønte problemstillingen. Dette er ikke noe viktig problem, fordi det er som sagt bare jeg som vil teste meg fram, løse litt problemer og skjønne litt om de forskjellige feltene i faget.

 

Takk for hjelp

5729934[/snapback]

 

En array kan sees på som en kommode med ting inni.

$users = array()

oppretter en tom array, klar for å få ting inni seg.

 

$users = array("Alta", "Bodø", "Tromsø", "Fauske");

oppretter en array med fire elementer. Disse har en nummerert index, teller fra null til tre. Så egentlig står det at i skuff 0 ligger "Alta", i skuff 1 ligger "Bodø" osv etc mm.

Hvis du lurer på hva variabelen din inneholder kan du bruke funksjonen var_dump(variabelen);

 

Så kan man opprette en array i flere dimensjoner. Da kan man se på de som en tabell.

$users = array(0=>  "Alta", "Fauske", "Steigen", "Bodø");

oppretter en todimensjonal array, nesten som hvis du kan tenke et excel regneark, hvor det står null i den første kolonnen og "Alta", "Fauske", "Steigen", "Bodø" i hver av de neste.

Videre kan du legge til

$users[1] = array("Bergen", "Askøy", "Sotra");
$users[2] = array("Oslo", "Askim", "Bærum");

 

I php har du også noe som heter en assosiativ array. Det vil si at du trenger ikke bruke tall som index i arrayen din. Eksempelvis kan jeg lage en assosiativ array slik:

 

$person = array('navn'=>'Cruella DeVille', 'alder'=>33, 'yrke'=>'student', 'favorittspråk'=>'php');

 

Til sist: hvordan looper jeg gjennom en array:

 

foreach(arrayen_din as $ett_eller_annet_som_gir_mening_for_deg){

//gjør noe med tingene, eksempelvis

print $ett_eller_annet_som_gir_mening_for_deg;

}

 

hvis du tenker at jeg har en tabell, hvor hele tabellen heter users. Denne har felter som "Per", "pål" og "espen".

 

Da vil loopen bli slik:

foreach($users as $navn){
print $navn . "<br />";
}

Denne skriver ut

Per

pål

espen

 

Så tilbake til den assosiative arrayen:

Den loopes på en litt annen måte -

 
foreach($person as $opplysning=>$verdi){
// gjør det du vil med variablene, eksempelvis
print $opplysninger . " - " . $verdi." <br />";
}

 

denne skriver ut:

navn - Cruella DeVille

alder - 33

yrke - student

favorittspråk - php

 

Det finnes en rekke ting du kan gjøre med arrays, feks sortere de (sort, arsort, asort), reversere de(array_reverse), søke i de(in_array()), merge to arrays (array_merge()) osv osv osv osv. Mer kan du lese her: http://no2.php.net/manual/en/ref.array.php

 

Litt klarere?

Lenke til kommentar
Nå har jeg endre linjen

echo $users['bvalg']; til echo $users['$brukervalg'];, men får fortsatt ingenting printet ut. Bare en blank side...

 

Du må ikke ha fnuttene med rundt brukervalg.. Linjen skal altså være "echo $users[$brukervalg];" ikke "echo $users['$brukervalg'];" :thumbup:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...