Avatar billede truthorn Nybegynder
27. januar 2003 - 20:12 Der er 5 kommentarer

multidim array (fjernelse)

Jeg har sikkert stillet dette spørgsmål før, men på en lidt anden måde, men jeg er lidt en array-spasser, og jeg vil gerne lige have lidt råd....

Jeg har på baggrund af et mysql_query et multidimensionelt array, dvs. $array[POSITION][KEY]. Dette kunne f.eks. være:
$array[0][produkternavn] = "crm-system";
$array[1][produkternavn] = "Adressebog";
$array[0][produkterid] = "1";
$array[1][produkterid] = "1";
etc....

Jeg opfatter (ret mig, hvis man IKKE kan lave denne antagelse), at et multidimensionelt array egentlig blot er et koordinatsystem, hvor x-aksen (kolonner) kan betragtes som KEYS, og y-aksen (rækker) som POSITION....
Det er muligvis bare mig, der har besværligheder med at finde ud af det :-/

Det jeg gerne vil er måske banalt for nogle, men for mig er det rent ud sagt et KÆMPE hyr - nemlig at fjerne/tilføje kolonner/rækker.....jeg kan se, at der findes tonsvis af funktioner til single-arrays, men jeg kan ikke få dem til at virke ordentligt på multi-dim arrays.

I må meget gerne komme med nogle eksempler f.eks. på baggrund af de der arrays, hvor man gør forskellige ting (eksempelvis fjerner eller tilføjer kolonner) - måske det kan virke som inspiration til at komme videre med det for nu har jeg siddet i dagevis og kæmpet....

På gensyn :+)
Avatar billede jakoba Nybegynder
27. januar 2003 - 23:36 #1
Det har du helt ret i. og du kan så udvide med en z-dimension osv osv.
men netop i php skal du være opmærksom på at det er ikke noget der gælder som en selvfølge for arrays

$array[2] i dit array ovenfor kan fx sagtens være et tal istedet for et tredie array med 'produktnamn' og 'produktid' celler.

så for at kunne stole på det må du selv sørge for at lave dit array på den måde.


for at tilføje en række siger du
$array[] = $nyt_underarray_med_produktnamn_og_produktid;

for at tilføje en kolonne skal du ind i alle uderarraysene og tilføje dit nue felt til hver af dem
for ( $i=0; $i<count($array); $i++ ) {
    $array[i]['produktfarve'] = "rød"; // eller hvad du nu vil stoppe i det nye felt
}

$arraynavn[] er en forkortelse af "opret ny celle forenden af arrayet"
}
Avatar billede truthorn Nybegynder
28. januar 2003 - 15:46 #2
OK - det lyder rigtig godt!
Så forstår jeg det korrekt - det giver mig faktisk ro i sindet, fordi når man er forholdsvis ny i arrays, så skal man lige vænne sig til hele tænkemåden, men tak for den gode forklaring :)
Avatar billede truthorn Nybegynder
28. januar 2003 - 15:54 #3
Kan man på nogen måde finde ud af hvilke "keys" man har i sit array (jeg ved ikke, om jeg kan kalde det keys, men oppe fra eksemplet kan du se "produkternavn" og "produkterid" - kan jeg hive det ud, så jeg kan se hvilke og hvor mange jeg har af disse?
Avatar billede truthorn Nybegynder
29. januar 2003 - 00:36 #4
Svar lige, hvis du vil have points :)
Avatar billede jakoba Nybegynder
29. januar 2003 - 01:52 #5
kik til bage i spm http://www.eksperten.dk/spm/310004
var-dump giver dig de index-værdier der er i den variabel du beder den dumpe. Den fortæller også hvilken datatype værdierne har:

array(10) {
    [0]=> string(1) "1"
    ["modulerid"]=> string(1) "1"
    [1]=> string(1) "2"
    ["produkterid"]=> string(1) "2"
    [2]=> string(11) "fakturering"
    ["modulerteknisknavn"]=> string(11) "fakturering"
    [3]=> string(17) "Faktureringsmodul"
    ["modulernavn"]=> string(17) "Faktureringsmodul"
    [4]=> string(29) "Dette er faktureringsmodulet."
    ["modulerbeskrivelse"]=> string(29) "Dette er faktureringsmodulet."
}

et array lavet af  mysql_fetch_array( $sql_udtræk )  får værdierne 2 gange, een gang som numerisk array (indexeret med tal) og en gang som associativt array (indexeret med feltnavnene)

mvh JakobA
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester