[PHP] Probleem met 2 arrays in elkaar

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Bolk
  • Registratie: Februari 2001
  • Niet online

Bolk

Change the equation.

Topicstarter
Hellow folks,

Ik ben nu al een tijdje bezig met hetzelfde stukje code en kom er maar niet uit.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$i = 0;
$pages = array();
$pagenr = array();

while loop van topiclist {

        $pages[] = $i;
        $c = 0;
        if($topiclist["replies"] / $offset > 1) {
            while($topiclist["replies"] / $offset > $c) {
                $pagenr[] = $c;
                $c++;
            }
        
            $pages[] = $pagenr;

        } else {
            $pages[] = array();
        }

        $i++;
}


Dit stukje zit in de topiclist van mijn forum. Ik wil nl de pagina's achter de topics weergeven.

Wat deze code doet als je alles achter elkaar zou zetten zou er bijv zoiets uitkomen:

PHP:
1
2
3
$pages = array("0", array("0","1","2","3"), 
               "1", array("1","2")
               );


Dit vind ik niet zo spannend. Alleen mijn template engine wil dat ik ze een "naam" geef. Ik wil dus tot bijvoorbeeld de volgende input komen:

PHP:
1
2
3
$pages = array("0" => array("0","1","2","3"), 
               "1" => array("1","2")
               );


Ik heb al het eea geprobeerd. Hoe kan ik nu die "=>" aangeven in de array als ik ze pas later samenvoeg en niet in een keer alvast "klaar" zet tijdens het declareren van de array();?

Thnx in advance :)

Ik bespeur hier een zekere mate van onethische logica.


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:47
Wat heb je al geprobeerd? Hoe zou je dit zelf (als computer zijnde) doen? Ik zou het ongeveer zo doen:
code:
1
2
3
4
5
Oude array: array ( 1, array ( 2, 3, 4), 5, array (6, 7, 8) );
Zolang de array niet leeg is:
    Haal een element uit de oude array; dit is de sleutel
    Haal nog een element uit de oude array; dit is de waarde
    Nieuw array [ sleutel ] = waarde

Resultaat: nieuwe array is: array(1 => array (2, 3, 4), 5 => array (6, 7, 8) ).

Je kunt proberen om deze pseudo-code uit te werken, of je kunt zelf wat beters verzinnen, natuurlijk. De functie array_shift is daarbij vast handig.

[ Voor 3% gewijzigd door Soultaker op 16-04-2003 01:54 ]


Acties:
  • 0 Henk 'm!

  • Bolk
  • Registratie: Februari 2001
  • Niet online

Bolk

Change the equation.

Topicstarter
Kijk hier heb je het dus al. Ik ben dus gewoon de verkeerde weg in geslagen en heb helemaal niet aan de psuedo code gedacht die je gepost hebt. Ik ben nu in ieder geval weer een stuk verder op weg.

Weet je, ik ben er zelfs al uit :)

$pagenr[] = $c; veranderen naar: $pagenr[$i][] = $c;

En ik heb het gewenste resultaat.

* Bolk gaat in een hoekje staan.

Bedankt iig :)


Ben er dus niet uit. Ik heb nog steeds een fout erin zitten. Die kan ik wel oplossen denk ik. Iig bedankt :)

[ Voor 15% gewijzigd door Bolk op 16-04-2003 02:18 ]

Ik bespeur hier een zekere mate van onethische logica.