Dit is mijn code. Nu wil ik alles sorteren op $points, maar dit is geen array daardoor werkt de code [func]sort[/func] niet. Mijn vraag dus hoe kan je van gegevens een array kan maken zodat je ik hem dmv sort kan sorteren?
Dat werkt inderdaad niet. De functie die je wilt gebruiken is array_multisort(). Het nadeel van deze functie is echter dat deze de data in bij elkaar horende data in verschillende array's nodig heeft, alvorens er gesorteerd kan worden.
Je krijg dus array's met respectievelijk id's, namen, ally's, villages, points en ranks. Vervolgens kun je array_multisort() gebruiken om deze data te sorteren en daarna een for loop om de data weer te geven.
Een voorbeeldje van hoe zo'n script eruit zou komen te zien:
<?php
error_reporting(E_ALL);
$aLines = file('http://nl2n.tribalwars.nl/map/tribe.txt');
echo '<pre>'.print_r($aData ,true).'</pre>'; */
?>
Echter gaat dit niet werken omdat het gewoonweg veel te lang duurt om dit script uit te voeren. Je zult hoogstwaarschijnlijk een error krijgen dat de max_execution_time overschreden is. Je hebt namelijk meer dan 27.000 regels in dat txt bestand staan. In zo'n geval wordt sorteren met php lastig, zo niet onmogelijk!
De oplossing is het gebruik van een database. Die kan deze hoeveelheden records makkelijk aan en bovendien kun je records al gesorteerd uit de database halen. Dit scheelt je enorm veel tijd en je script (en dus website) wordt er een stuk sneller van!
Ik kan alles wel in een MySQL tabel zetten, maar het moet dan als je de pagina bezoekt geupdate worden en dat vond ik nog moeilijker.
Idd dit kan gewoon niet: Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 35 bytes) in /usr/home/xxxxxx/xxxxx/xxxxxxxl/public_html/tribalwars.php on line 14
Mijn scriptje werkt nu iig, maar wat blanche al zegt: met die hoeveelheid data van jouw is sorteren onmogelijk. Je zult alles om moeten zetten naar een database.
Ik krijg iig een error: Allowed memory size... blabla
Ik denk omdat het een online spel gaat, en hij wil dat iedereen up-to-date is.
Maar om de minuut is niet nodig, weer zo'n geval waarin mensen te snel denken aan een cronjob. Gewoon sorteren als iemand de data opvraagt!