Avatar billede FrederikLive Nybegynder
24. oktober 2012 - 02:55 Der er 6 kommentarer og
1 løsning

array(func())?

Hej Alle!

Min Array:
[code]
Array
(
    [0] => 1
    [1] => pære
    [2] => banan
    [3] => citron
)
[/code]

Dette er muligt:
[code]
$pointer = 1;
echo $array[$pointer];
[/code]

Men hvorfor er dette så ikke muligt?
[code]
//$pointer = iteger; // Gør ingen forskel
$pointer = $array[0];
echo $array[$pointer];
[/code]

Som i kan se gemmer jeg i min array hvilken pointer jeg vil læse, da jeg skal gemme dette til senere brug og tilføje mm.

Jeg har også prøvet at gemme min pointer f-eks i en tekst fil og loaded den således:

[code]
function read_pointer() {
    $load_file = file(ARRAY_FILE); // Gemme filen i en array
    $output = integer; // Gør ingen forskel..
    $output = trim($load_file[0]); //Læse linje 0 (I mit tilfælde tallet 1)
    return $output;
}
echo $array[read_pointer()];
[/code]

Dette virker heller ikke.. Essentiel burde man kunne echo fra en array således: array[array[key]..

Jeg kan læse på php.org følgende:
(http://www.php.net/manual/en/language.types.array.php)
As stated in the syntax section, what's inside the square brackets ('[' and ']') must be an expression. This means that code like this works:
[code]
<?php
echo $arr[somefunc($bar)];
?>
[/code]
Men har iøvrigt ikke kunne finde nogle reference, eksempler eller andet.
Anyway, nogen der kender til dette?

P.S. Hvorfor har eksperten.dk ikke css der vise bbcode [ code][ /code]? Og hvorfor laver den mine tegn om.. Måske et andet bbcode tag skal bruges?
Avatar billede lclemens Nybegynder
24. oktober 2012 - 04:33 #1
echo $array[$array[0]];

Jeg er slet ikke sikker på, at jeg er med.
24. oktober 2012 - 06:02 #2
Du bruger variabelen $array til to forskellige ting, til at holde værdierne 1, pære, banan, o.s.v., og til at indeholde pointerværdierne.  Prøv at gemme pointer værdierne i anden array, såsom $newArray[0] = 0, $newArray[1] = 1, o.s.v.  Så skulle (ikke testet) 'echo $array[$newArray[2]]' give banan og 'echo $array[$newArray[3]]' give citron o.s.v.  Eller

$pointer = $anewArray[2];
echo $array[$pointer];

giver banan.
Avatar billede olebole Juniormester
24. oktober 2012 - 10:56 #3
<ole>

Der må være noget helæt galt med dnin PHP-opsætning. Du skriver:

"$output = integer; // Gør ingen forskel.."
Men det kan ikke passe, da denne linje skal smide en fejl, som udskrives i dokumentet. Det gør en stor forskel.

Derudover fungerer denne kode fint:

<?php
$arr = array(2, 'en', 'to', 'tre', 'fire');
$pointer = $arr[0];

echo 'Med pointer fra array: '. $arr[$pointer] .'<hr>';

// Skriv tal i fil
$fp = fopen('pointer.txt', 'w');
fwrite($fp, '3');
fclose($fp);

// Læs tal fra fil
$fp = fopen('pointer.txt', 'r');
$pointer = fread($fp, filesize('pointer.txt'));
fclose($fp);

echo 'Med pointer fra fil: '. $arr[$pointer] .'<hr>';
?>

/mvh
</bole>
Avatar billede olebole Juniormester
24. oktober 2012 - 11:00 #4
Hvad angår E's BB-koder, har jeg skrevet denne editor. BB-koderne er 'dokumenteret' i denne guide
Avatar billede FrederikLive Nybegynder
30. oktober 2012 - 01:21 #5
Hej alle og tak for svar!
Olebole, du har helt ret og jeg var også klar over det burde virke. Efter nogle forsøg fandt jeg fejlen som simpelt ligger i .txt filens kodning, den var kodet i UTF-8 med BOM som indlægger nogle tegn i filen, mit script læste..

Tak igen.
02. november 2012 - 17:17 #6
FrederikLive, du fik problemet løst.  Lukker du derfor spørgsmålet igen?  Den normale fremgangsmåde er at bede om svar fra den eller de hvis indlæg var til hjælp og så acceptere dette/disse svar.
Avatar billede FrederikLive Nybegynder
05. november 2012 - 00:49 #7
h
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