Array?

goran298
goran298s bilde
Avlogget
BidragsyterDonator
Ble med: 31.03.2010

Hei.

Først av alt må jeg skryte av tiltaket for å få slike sider som dette på norsk, det gjør ting litt enklere :)

Jeg har nå sånn fra og til, mest fra :P, prøvd å lære meg PHP i flere år.. det jeg begynte med i sin tid var og lære meg både html, css og php. Jeg ga opp med php og skjønner nå hvorfor da jeg har dratt opp denne tråden med å lære php....

Problemet mitt som jeg nå støter på igjen er ikke å skrive eller finne nok lesestoff om php, men den praktiske bruken... Jeg skjønner dette med variabler, if, else osv... men det jeg ikke skjønner er array. Ja, jeg skjønner hvordan du kan skrive en array og at man kan bruke tall eller tekst til å navngi disse, men jeg klarer rett og slett ikke se hvilken sammenheng jeg kan bruke dette til...

Når jeg ser på kodesnutter som man finner rundt om på nett, så ser man jo at dette er noe som går igjen ofte og som er tydligvis en viktig del av php. Men som sakt jeg klarer ikke se sammenhengen her...

Tar jeg et konkret eksempel, om jeg skal lage et eget CMS system, når vil det være fornuftig å bruke array? og hvilken andre fordeler/ulemper er det med array? når bør man bruke dette? osv osv.

Håper med dette å få et klarere syn på array :)

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Arrays er nyttige

Hehe, jeg ser denne og slet selv med å se nytteverdien av en array i begynnelsen, men nå skjønner jeg hvorfor de er kjekke å ha.

Vel, en array er bare en samling med data. Som du vet kan man lagre informasjon i variabler og arrayer, men fordelen med arrayer er blant annet at man kan loope gjennom dem.

Si man skal lage en liste med familiemedlemmer. I et slik tilfelle kunne man laget en array, og så vist innholdet i ei liste ved å loope gjennom arrayen og lage output.

Man kan også lage "multi dimensional arrays". Dette kunne vært nyttig om man skulle laget et familietre.

Videre kan man sende informasjon til en funksjon ved hjelp av en array, og så lagre argumentene i arrayen, for så å loope gjennom dem inne i funksjonen.

For å si det slik; jo mer du bruker PHP desto større vil du se at nytteverdien av arrays er.

goran298
goran298s bilde
Avlogget
BidragsyterDonator
Ble med: 31.03.2010
Array samling av data

Hmmm om jeg da skjønner deg riktig så skal jeg ikke bekymre meg så mye over array nå, da det vil komme med erfaringen man får etterhvert i php :)

Men siden array er da en sammling av data, hvorfor da bruke array fremfor MySQL? regner med at dette går på hastighet av skriptet og hva som er kjappest med tanke på kodingen...

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Arrays i PHP og sammen med MySQL

Hopp igjen.

Nei, man bruker ikke arrays som en erstatning for MySQL. Hvis du definerer en array i et script, så gjelder bare verdiene i arrayen til scriptet er kjørt og ferdig, akkurat som med variabler.

Lagrer du derimot noe i MySQL så er det tilgjengelig hele tiden. Man kan "snakke" med MySQL fra forskjellige klienter også. F.eks. kan du lage en egen desktopklient som henter ut og legger inn informasjon i en MySQL-database.

Faktisk så er det slik at man ofte henter ut informasjon fra MySQL og har de i en array, da er navnet på feltet i databasen den assosiative nøkkelen, mens verdien i feltet er verdien i denne delen av arrayen. For å printe ut slike verdier til skjermen bruker man gjerne en foreach-loop.

Si du har en MySQL-tabell med feltene: fornavn, etternavn og alder. Hvis du henter ut disse og lagrer dem i en array, så vil man kunne ha en slik array;

<?php
$array
= array(
 
'fornavn' => array('Nils', 'Peter', 'Knut'),
 
'etternavn' => array('Hansen', 'Moe', 'Zahl'),
 
'alder' => array(19, 21, 13)
);
?>

Her har man en multidimensjonell array, hvor tre personer er lagret; Nils Hansen (19), Peter Moe (21) og Knut Zahl (13).

Som du ser er fornavn, etternavn og alder den første dimensjonen av arrayen, mens den neste inneholder faktiske data. Hvis man skulle loopet gjennom denne arrayen kunne man gjort det slik;

<?php
for($i=0; $i<count($array['fornavn'); $i++) {
  print
$array['fornavn'][$i] . ' - ';
}
?>

Dette ville printet ut Nils - Peter - Knut - . Ikke akkurat noe fancy, men det viser prinsippet.

Man har også en rekke funksjoner som gjør ting med arrayer i PHP. Det kan være å sortere dem alfabetisk, finne en verdi og så videre.

goran298
goran298s bilde
Avlogget
BidragsyterDonator
Ble med: 31.03.2010
Array løsner kanskje

Kanskje jeg begynner å se poenget nå

Jeg begynte for en del år siden å prøve å lage div hjemmesider.... jeg trodde jeg hadde kontoll på html og css, men ser nå etter jeg begynte med mitt eget prosjekt at jeg har glemt det helt nesten.... Jeg prøvde i samme slengen å lære meg php men ga opp da jeg ikke skjønte noen ting.... etter det har jeg drive en del med div cms systemer... deriblant et som heter phpvms.

Med den forklaringen du nå gir så ser jeg da at jeg kan jo faktisk hente ut opplysninger fra database og da sette dem inn i en array slik du sier for så igjen sortere det alfabetisk, etter id, land osv osv.... da tror jeg at jeg begynner å få en viss formening om hva man kan gjøre med array....

Jeg ser at man har lett for å tenke for vanskelig når det gjelder koding av hjemmesider. Nei, nå må jeg hive meg inn i siden min mens jeg har litt blod på tann og ser 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Litt mer om arrays

Ja, jeg holder med deg. Det er fort gjort å glemme gamle kunster når de ikke praktiseres. Den gode nyheten er at det er lettere å komme inn i det igjen.

Man kan absolutt bruke en array for å gjøre det du sier, men man kan også sortere dem ferdig fra MySQL. Jeg vil påstå at det beste med arrays er at man kan samle mange opplysninger som er relevante for hverandre på ett og samme sted.

Ved bruk av funksjonen unset($variabel), så frigjør man minne (RAM), fordi variabelen ikke lenger er lagret. Dette må du gjøre på hver enkelt variabel, slik unset($var1, $var2, $var3, ...), mens med en array trenger du kun gjøre det én gang unset($array), så fjerner du alle data i arrayen fra minne.

En annen viktig ting er funksjoner. Hvis funksjonen skal returnere mer enn én string, ett tall eller liknende så bruker man en array. Her er et enkelt eksempel;

<?php
function return_something() {
 
$array = array();
 
$array['navn'] = 'Trine';
 
$array['alder'] = 42;
 
$array['kjonn'] = 'Kvinne';

  return
$array;
}
?>

Å returnere flere verdier på denne måten fra en funksjon ville ikke vært mulig uten en array.

Svar på forumemnet

(If you're a human, don't change the following field)
Your first name.
Innholdet i dette feltet blir holdt privat og vil ikke bli vist offentlig.