Problemer med 'feltnavne' i array
Jeg har en script, som skriver indholdet af nogle felter i databasen ud til en csv-fil, dog midlertidig kun til skærm.Jeg har oprettet et array indeholdende nogle af de felter som der skal skrives ud, bl.a. andet med feltnavnet og indholdet, dog ikek ved alle.
Ja, det lyder meget kryptisk, og er det også at forklare, men jeg prøver at visualisere det.
Array indeholderne nogle af felterne: (Det smarte var så, at jeg på det sidste felt, bare kunne lægge henholdsvis 1 og 2 til, for at få de resterende felter)
$felter = array(
array('344', '334'),
array('379', '369'),
array('356', '345'),
array('368', '357'),
array('391', '380'),
array('396', '392'),
array('407', '403'),
array('466', '461'),
array('428', '419'),
array('428a', '419a'),
array('446', '437'),
array('446a', '437a'),
array('436', '429'),
array('454', '447'),
array('412', '408'),
array('473', '467'),
array('402', '397'),
array('418', '413'),
array('460', '455'),
array('460a', '455a')
);
Koden som løber dem igennem (Der er mere end dette, men det er her problemet er):
$hej;
for($j=0;$j<sizeof($felter);$j++) {
for ($i=0;$i<sizeof($felter[$j]);$i++) {
if ($i==0){
//Starten af hver linie
if ($j==0) {
//Aller første gang, skriver linieindikatoren og dennes værdi i variabel
$hej = $ordre . "; ". $felter[$j][$i] .";". $res["r".$felter[$j][$i]] . ";" . $res["r".$felter[$j][$i+1]];
} else {
//De efterfølgende gang, tilføjer de resterende linieindikatorer samt værdier.
$hej = $hej . $ordre .";". $felter[$j][$i] .";". $res["r".$felter[$j][$i]] .";". $res["r".($felter[$j][$i+1])];
}
} else if ($i==1) {
if ($res["r".($felter[$j][$i])]=="") {
$res["r".($felter[$j][$i])] = "";//Hvis der eventuelt skal sættes et specialtegn ind for tomt felt
}
if ($res["r".($felter[$j][$i]+1)]=="") {
$res["r".($felter[$j][$i]+1)] = "";//Hvis der eventuelt skal sættes et specialtegn ind for tomt felt
}
$hej = $hej .";". $res["r".($felter[$j][$i]+1)] .";". $res["r".($felter[$j][$i]+2)] .";". "<br>";
}
}
$hej = $hej . "#";
}
Og resultatet (outputtet):
40444;0; 344;107214;11;1178;12958;
#40444;0;379;13843;2;824;1648;
#40444;0;356;24;1;2;2;
#40444;0;368;73;2;3;6;
#40444;0;391;244;4;5;20;
#40444;0;396;12787;10;;1212;
#40444;0;407;12005;2;492;984;
#40444;0;466;1903;5;31.2312;156;
#40444;0;428;45000;6;;3000;
#40444;0;428a;0;7;;3000;
#40444;0;446;0;8;;0;
#40444;0;446a;7500;1;;0;
#40444;0;436;0;9;;0;
#40444;0;454;0;10;;0;
#40444;0;412;36010;11;233;2563;
#40444;0;473;8500;50;16;800;
#40444;0;402;1131669;213;231;49203;
#40444;0;418;125952;32;123;3936;
#40444;0;460;324864;12;64;768;
#40444;0;460a;574728;14;64;768;
#40444;0;474;122;#40444;0;475;100;#40444;0;476;300;#40444;0;514;31730;#40444;0;515;82497;#40444;0;507;133265;#40444;0;508;241146;#40444;0;516;2854;#40444;0;517;9845;#40444;0;518;2919141;#40444;0;519;366;#
Problemstilling:
Det ser for så vidt godt nok ud, IND TIL jeg kommer til et felt, som hedder noget med a, f.eks. 428a, så kan jeg ikke længere lægge 1 til, og jeg får derfor returneret noget forkert. Så jeg skal have hjælp til få disse felter korrekt ud at det går ud over de andre.
Felterne hænger sammen på denne måde:
Linie 1) 428a, 419a, 421a
Linie 2) 446a, 437a, 439a
Linie 3) 460a, 455a, 456a, 457a
De første felter, skal udskrives båpde med deres feltnavn og deres værdi, de andre kun med deres værdi.
Så altså, når scriptet møder 1 af de 3 første felter, så skal den ikke lægge til, men derimod returnere de andre felter.
Håber det er en god nok forklaring, ellers skriv hvad det er I ikke forstår, og jeg vil prøve at forklare det på en anden måde.
