[PHP] arrays vraag!

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,
Ik ben al uren aan het proberen en aan het zoeken over hoe ik het volgende moet doen:

Ik heb de volgende gegevens achter elkaar staan:

lft=6&lft=0&midden=6&midden=7&midden=8&midden=0&rgt=9&rgt=10&rgt=11&rgt=0

Ik wil dit sorteren zodat ik uitijdelijk dit krijg:

lft:
6
0
midden:
6
7
8
0
rgt:
10
11
0

De teksten van lft, midden en rgt morgen gewoon geschreven zijn. Maar nu is dus mijn vraag hoe krijg ik bovenstaande voor elkaar?
Ik ben wezen proberen met onderstaande scriptje, maar ik kom niet verder. Ik weet echt niet hoe ik dit kan oplossen.

PHP:
1
2
3
4
5
6
7
<?
$string = "lft=6&lft=0&midden=6&midden=7&midden=8&midden=0&rgt=9&rgt=10&rgt=11&rgt=0"; 
$array = explode("&", $string);
$arrayTotal = count($array); 
for( $totaal = 0; $totaal <= $arrayTotal; $totaal++ )
echo "$array[$totaal]<br>";
?>



Wie kan me helpen?
Harstike bedankt alvast!

[ Voor 9% gewijzigd door Verwijderd op 12-09-2003 22:35 ]


Acties:
  • 0 Henk 'm!

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09 14:42
sort gebruiken :?

Acties:
  • 0 Henk 'm!

  • JER00N
  • Registratie: Maart 2002
  • Niet online
Je kan toch gewoon eerst exploden met & en daarna met = ?
dus

PHP:
1
2
3
$string = "lft=6&lft=0&midden=6&midden=7&midden=8&midden=0&rgt=9&rgt=10&rgt=11&rgt=0";
$newstring = explode("&", $string);
$newstring = explode("=", $newstring);

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
sort. Maar dat lukt me niet helemaal. Dat heb ik geprobeert alleen dan krijg ik alleen maar foutmedlingen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Pastasaus:
PHP:
1
2
3
4
5
<?
$string = "lft=6&lft=0&midden=6&midden=7&midden=8&midden=0&rgt=9&rgt=10&rgt=11&rgt=0"; 
$newstring = explode("&", $string); 
$newstring = explode("=", $newstring);
?> 

Het probleem is dat ik appart in 3 verschilende rijtjes de gegevens van lft, midden en rgt wil hebben. En dat lukt dan toch niet?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik weet niet of mijn begin goed is. Maar als ik het script van Pastasaus hier in zit krijg ik niks te zien in beeld. En dan heb ik nog niet dat het gesorteerd wordt op de 3 onderwerpen.

Acties:
  • 0 Henk 'm!

  • wasco
  • Registratie: April 2003
  • Laatst online: 20-09 12:25

wasco

brightest crayon in the box

wacht hé? begrijp ik het goed?

die $string die je hierboven ziet, gaat die achteraf eigenlijk via het address meegegeven worden? (http://www.xxx.com?lft=6&...rgt=9&rgt=10&rgt=11&rgt=0

als dit zo is, waarom gebruik je dan niet de GET-vars?

PHP:
1
2
3
4
5
6
7
8
9
<?
foreach($_GET as $key => $value)
{
echo $key;
//  $key is  hier "lft", "midden", "rgt", "whatever"
echo $value;
//  $value is hier de waarde die lft meekreeg
}
?> 


Ik kan het even niet uitproberen maar ik vrees wel dat dit problemen kan geven omdat je eigenlijk dezelfde variabele meerdere keren definieert.
weet niet goed of de PHP-parser er dan een array van maakt of gewoon de laatste waarde neemt..

als hij er een array van maakt dan heb je zoiets nodig
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
foreach($_GET as $key => $value)
{
if(is_array($key)){
foreach($_GET[$key]  as $ar_value)
{
echo $key;
//  $key is  hier "lft", "midden", "rgt", "whatever"
echo $ar_value;
//  $ar_value is hier een van de waarden die je meegaf aan $key, hij doorloopt ze  allemaal
}
}else{
echo $key;
//  $key is  hier "lft", "midden", "rgt", "whatever"
echo $value;
//  $value is hier de waarde die $key meekreeg

}
?> 

[ Voor 12% gewijzigd door wasco op 12-09-2003 22:53 ]

wasco [the brightest crayon in the box]


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

De PHP parser maakt er geen array van; maar de laatste waarde wordt gebruikt. Dat is waarschijnlijk ook de reden dat de TS aan een custom oplossing is begonnen ;)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • wasco
  • Registratie: April 2003
  • Laatst online: 20-09 12:25

wasco

brightest crayon in the box

zou het niet handiger zijn als we de brongegevens anders zoude kunnen indelen zodat het verwerken achteraf makkelijker wordt...

schret... die commandolijn... waar haal je die vandaan? bepaal je die zelf?

zoja, misschien kunnen we beter dat aanpakke?


lft[0]=6&lft[1]=0&midden[0]=6&midden[1]=7&midden[2]=8&midden[3]=0&rgt[0]=9&rgt[1]=10&rgt[2]=11&rgt=0

dit zou de truck (sic.. lol :) ) moeten doen, dan is mijn code wel weer bruikbaar

[ Voor 32% gewijzigd door wasco op 12-09-2003 23:10 ]

wasco [the brightest crayon in the box]


Acties:
  • 0 Henk 'm!

  • Suepahfly
  • Registratie: Juni 2001
  • Laatst online: 17-09 17:05
Als je de waarden via GET binnen haalt (dus script.php?lft=6&lft=0&midden=6&midden...)
overschrijven ze alkaar dan niet?

Eerst zeg je
lft=6 en dan
lft=0

Dus uitendelijk zal lft 0 zijn.
of zie ik dat verkeerd?

Acties:
  • 0 Henk 'm!

  • wasco
  • Registratie: April 2003
  • Laatst online: 20-09 12:25

wasco

brightest crayon in the box

Suepahfly niet zo suepa vandaag blijkbaar

lees de volledige topic een keer terug en lees dan je vraag is terug...

any resemblance is purely coincidence :-)

wasco [the brightest crayon in the box]


  • WormLord
  • Registratie: September 2003
  • Laatst online: 10:10

WormLord

Devver

Het volgende script zou volgens mij moeten werken.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<? 
$string = "lft=6&lft=0&midden=6&midden=7&midden=8&midden=0&rgt=9&rgt=10&rgt=11&rgt=0"; 
$array = explode("&", $string); 
$arrayTotal = count($array); 
for( $totaal = 0; $totaal < $arrayTotal; $totaal++ ) 
{
  list($type, $value) = explode("=", $array[$totaal]);
  $finalArray[$type][] = $value;
}
foreach ($finalArray as $type => $values)
{   
  echo $type.":<br>";
  foreach ($values as $value)
  {
    echo $value."<br>";
  }
}
?>

Verwijderd

Topicstarter
Nee hellaas kan ik die gegevens niet veranderen. Als dat mogelijk was zou het inderdaad een stuk makkelijker zijn.
Maar toch bedankt!
wasco schreef op 12 September 2003 @ 23:05:
zou het niet handiger zijn als we de brongegevens anders zoude kunnen indelen zodat het verwerken achteraf makkelijker wordt...

schret... die commandolijn... waar haal je die vandaan? bepaal je die zelf?

zoja, misschien kunnen we beter dat aanpakke?


lft[0]=6&lft[1]=0&midden[0]=6&midden[1]=7&midden[2]=8&midden[3]=0&rgt[0]=9&rgt[1]=10&rgt[2]=11&rgt=0

dit zou de truck (sic.. lol :) ) moeten doen, dan is mijn code wel weer bruikbaar

Verwijderd

Topicstarter
Harstike bedankt! Het werkt zo als ik wou!
Bedankt voor de mooite!
WormLord schreef op 13 september 2003 @ 11:04:
Het volgende script zou volgens mij moeten werken.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<? 
$string = "lft=6&lft=0&midden=6&midden=7&midden=8&midden=0&rgt=9&rgt=10&rgt=11&rgt=0"; 
$array = explode("&", $string); 
$arrayTotal = count($array); 
for( $totaal = 0; $totaal < $arrayTotal; $totaal++ ) 
{
  list($type, $value) = explode("=", $array[$totaal]);
  $finalArray[$type][] = $value;
}
foreach ($finalArray as $type => $values)
{   
  echo $type.":<br>";
  foreach ($values as $value)
  {
    echo $value."<br>";
  }
}
?>

Verwijderd

Topicstarter
Ik haal ze ook niet via get binnen. Maar als ik zet pagina.php?nummers=lft=6&lft=0&midden=6&midden=9
dan zou het wel kunnen werken als ik doe: echo"$nummers";
En op deze manieer doe ik dit dus.
Suepahfly schreef op 12 September 2003 @ 23:10:
Als je de waarden via GET binnen haalt (dus script.php?lft=6&lft=0&midden=6&midden...)
overschrijven ze alkaar dan niet?

Eerst zeg je
lft=6 en dan
lft=0

Dus uitendelijk zal lft 0 zijn.
of zie ik dat verkeerd?
Pagina: 1