Avatar billede christian-BN Praktikant
17. oktober 2013 - 11:38 Der er 5 kommentarer

bruge 2 variable til at danne en ny

Hej,

jeg har en masse variabler som hedder $A, $B, $C ... hele alfabetet igennem. Hver variabel er et Array 

Jeg skal lave en funktion som kan kalde hver enkelt array, så noget lignende

function udskriv($letter) {
$oversigt = $"".$letter."";
}
udskriv("B");

Hvordan danner jeg en variabel ud fra den funktion som vil udskrive $B eller lignende..

$oversigt = $letter giver mig pt B, men skal bruge noget som giver $oversigt = $B

Håber det giver mening :)
Avatar billede michael_stim Ekspert
17. oktober 2013 - 11:57 #1
Det giver ikke rigtigt nogen mening for mig. Hvad skal det bruges til? Hvordan skal det udskrives?

Hvis du har et array, kan du bare bruge printf($B); til at udskrive. Hvis du vil løbe arrayet igennem for at f eks udskrive det i HTML eller lignende, skal du bruge en form for loop (for, foreach, while eller lignende).
Avatar billede christian-BN Praktikant
17. oktober 2013 - 12:07 #2
Det jeg forsøger at at spare noget kode.
Jeg har 28 arrays, et for hvert bogstav i alfabetet som henter data fra et excel ark. Hvert array indeholder +40 arrays.

Det jeg gerne vil er at strukturer og opsætte html koden i en funktionen så jeg slipper for at gentage mange linjers kode hele tiden.

Jeg vil gerne kunne lave en funktion som kalder eg. B-arrayet og opsætter alle informationer.

Ydereligere så er det en struktur der skal genbruges på 5 sider, så jeg vil gerne holde samlet i en funktion.

Hvad angår selve opsætningen så er jeg med på at jeg skal bruge et loop, jeg kan bare ikke tilgå mit array :/

Hvis man tager udgangspunkt i jeg vil bruge array'et $B, så skal jeg på en eller anden måde få sat variablen sammen med den data jeg skal bruge.

Ud fra overstående kode, så jeg har valgt at hente B, men jeg skal have sat "B" = $B
Avatar billede repox Seniormester
17. oktober 2013 - 12:11 #3
Brug et multidimensionelt array som du itererer hen over i stedet - det andet er noget værre spaghetti kode.

$container['A'] = array(med 40+ arrays);
$container['B'] = array(med 40+ arrays);
$container['C'] = array(med 40+ arrays);
...


En simpel iteration:

forach(range('A', 'Z') as $letter)
{
  foreach($container[$letter] as $oversigt)
  {
    var_dump($oversigt); //den sidste dimension af arrayet.
  }
}
Avatar billede christian-BN Praktikant
17. oktober 2013 - 12:33 #4
Jeg ved det, tænkte det var den nemmeste løsning da de ender med at være en distribtionsliste.

Struktureren kommer til at være gruppering alfabetisk med at html-anchor

A
...
...
..

B
...
...
...

etc..

Derudover kommer jeg også til at arbejde med danske bogstaver.

Jeg har dog rettet til dit forslag med en container, men så står jeg med at andet problem i forhold til range i løkken med danske bogstaver og hvordan jeg laver et anchor
Avatar billede arne_v Ekspert
17. oktober 2013 - 16:43 #5
Altsaa ideen med et 2D array er absolut det rigtige design.

Syntaxen for det du spurgte om er:

$oversigt = ${$letter};

Eksempel:

<?php
$all = array('A' => array('Anders', 'Andreas'), 'B' => array('Benny', 'Bo'), 'C' => array('Christian'));
$ex1 = $all['B'];
print_r($ex1);
$a = array('Anders', 'Andreas');
$b = array('Benny', 'Bo');
$c = array('Christian');
$ex2 = ${'b'};
print_r($ex2);
?>
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