Toon posts:

[PHP] Array probleem...

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een functie waarin ik files inlaad in een 'array' alleen wil ik dat deze array variable kan zijn zodat ik meerdere files kan laden met 1 functie in meerdere arrays!!

Ik heb de volgende files/routines

[test.txt]
code:
1
2
3
4
1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20
2;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20
3;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20
4;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20

[main.php]
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?
function loadCSVFile($tmpFile, $tmpArray, $tmpCount) {
    global $tmpArray, $tmpCount;
    
    $tmp = "";
    $tmpCount = 0;
    
    $fd = fopen ($tmpFile, "r");                             // voorbeeld bestand

    while (!feof ($fd)) {
        $tmp = str_replace("\r\n", "", fgets($fd, 4096));
        $tmpArray[$tmpCount] = $tmp;
        $tmpCount++;
    }

    fclose ($fd);
    return;
}


// het bovenste stuk en dit onderste stuk zijn normaal
// gescheiden qua bestand (boven = file.include.php)
// onder = main.php :)


loadCSVFile("fout.txt", $xArray, $xArrayCnt);

for ($i = 0; $i <= $xArrayCnt; $i++) {
    echo $xArray[$i];
}
?>

Als ik in de functie loadCSVFile een echo plaats like echo $tmp dan zie ik de uitkomst wel, maar anders niet, teminste niet met de routine hier boven bescherven..

Waar ga ik de fout in?...

:D Alvast bedankt! :)

Verwijderd

Het kan veel makkelijker:
PHP:
1
2
3
4
5
6
7
<?
$file = file("bestandsnaam.dat");
$rijen = count($file);'
for ($i = 0; $i < $rijen; ++$i) {
    echo $file[$i]."<br>";
}
?>

Oftewel, dit script toont elke rij van de file...

Freez0r

Verwijderd

Topicstarter
Jah, maar ik heb er een 'functie' voor geprobeerd te maken, alleen werkt ie niet helemaal zoals ut moet :D

  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Jij wilt eigenlijk dat xArray en xArrayCnt gevuld worden. Nu maak je in de functie tmpArray en tmpArraycnt global. Dit klopt niet, want deze zijn uiteraard verschillend.

Wat jij wil kan bijvoorbeeld mooi met:
PHP:
1
2
3
4
5
6
<?
function loadCSVFile($tmpFile, &amp;$tmpArray, &amp;$tmpCount) {
// geen globals

tmp = ""; // enz..
?>

Nu geeft hij de waarden terug door reference.

Kijk hiervoor ook op php.net References uitgelegd

Verwijderd

Topicstarter
Die global had ik er gewoon tussen gezet om dat het zonder ook niet werkte, mja vind het maar een vaag probleem...

Ik heb trouwens die pagina op php.net bekeken, en moet jammer genoeg bekennen dat ik er geen bal van snap :X

  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Voeg alleen die twee &-tekens maar toe bij die functie. Dan gaat het vast wel werken... (zie hiervoor mijn vorige post uiteraard) ;)

Verwijderd

Topicstarter
Op vrijdag 28 december 2001 11:14 schreef RdeTuinman het volgende:
Voeg alleen die twee &-tekens maar toe bij die functie. Dan gaat het vast wel werken... (zie hiervoor mijn vorige post uiteraard) ;)
Mr. Rdetuinman!, tnx ik ga het gelijk ff testen!.

-edit :) Die & deed het idd, vaag mja het werkt :) edit-

  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Ok dan! *D

Als je nog wilt weten hoe het komt dat het werkt:

Met dat &-teken geef je aan dat je dezelfde variabele een andere naam geeft. In je programma heet de variabele dus xArray en in de functie heet diezelfde variabele tmpArray.

Als je dus tmpArray gaat vullen in je functie, dan vul je dus xArray, want deze is dus hetzelfde.

Daarom werkt het zoals het werkt. :)

Verwijderd

Topicstarter
Op vrijdag 28 december 2001 12:14 schreef RdeTuinman het volgende:
Ok dan! *D
Daarom werkt het zoals het werkt. :)
Dat is de mooiste quote die ik ooit gequoted heb :)

Verwijderd

Topicstarter
Ey weet iemand hoe je een array kan resetten naar 0?... zodat ie leeg is en weer gebruikt kan worden voor nieuwe data? :D

Tnx.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
unset($blaat) ?

  • eek
  • Registratie: Februari 2001
  • Laatst online: 06-04-2020

eek

@MagickNET

$bla = array()?

Skill is when luck becomes a habit.

Pagina: 1