Ik heb een .php bestand met daarin op elke regel data welke begint met een uniek 4-cijferig ID nummer. De data wordt gescheiden door een '$' teken en ziet er ongeveer alsvolgt uit: 31$username$userpass$usermail$
De data word door een extern programma gegenereerd en gelezen, dus in de opmaak van de regel kan ik zelf niets wijzigen.
Ik ben op zoek naar een script die op elke regel de unieke ID leest, deze aan een array (o.i.d.) toevoegt en (de regel met) het hoogste ID nummer eruit haalt, een nieuw ID nummer maakt (hoogste +1) en deze nieuwe ID met resterende data op een nieuwe regel schrijft.
Ik zit hopeloos vast en kan alleen het onderstaande bedenken wat helaas niet wil werken. Ook het pas toegevoegde INI/TXT reader script/class wil niet werken.
Alvast bedankt voor de hulp, hieronder mijn eigen brouwseltje waarmee ik hopeloos kom vast te zitten...
File regels in array() zetten,
Dan met foreach() bij elke regel een explode() en het getal gebruiken als key en de rest van de regel als waarde in een ander array() zetten.
Sorteren en klaar.
Maar het wil mij niet lukken om het IDnr (array[0]) in een nieuwe array te plaatsten, de rest van de data (array[1] ... [13]) in een aparte en de hoogste waarde (IDnr) uit array[0] te halen.
Alvast bedankt, de code danst voor mijn ogen en heb (ondanks de hulp van php.net en diverse fora) geen flauw benul meer waar ik het zoeken moet.
// file in array() inlezen en nieuw array() vullen met het getal als de key en de rest als de waarde.
$link = file("hulp.txt");
$array = array();
foreach($link as $regel)
{
$arr = explode('$', $regel, 2);
$array[$arr[0]] = $arr[1];
}
Ik dacht dat het allemaal wilde lukken, maar helaas gaat er toch (weer) iets niet helemaal zoals het zou moeten.
Hieronder jouw script dat ik heb aangepast naar gebruik voor dat wat ik wil bereiken (namelijk het huidige bestand lezen en een nieuwe regel toevoegen met nieuw id nummer)
Het probleem is dat het script netjes een nieuw, met 1 opgehoogd, nummer wegschrijft maar dat deze na lijn 10 alleen nog maar nummers 1 opnieuw wil aanmaken. Ik heb het vermoeden dat ergens een waarde niet als nummer wordt gezien maar waar gaat het fout?
Hieronder het script dat ik wil gebruiken, alvast bedankt!