Array zuordnen?
Hagen
- php
Hallo!
Ich habe ein Problem. Ich lese aus einer Datei eine Zahl aus und füge sie einem Array hinzu. Der Dateiname wird in einem anderem Array gespeichert.
Wenn dies für alle Dateien im Verzeichnis passiert ist wird erst einmal das Array mit der Zahl sortiert. Da ist auch schon das problem. Wenn ich nun beide Arrays in gleicher Reihenfolge als Textlink schreibe stimmt die Zuordung nicht mehr. Ich kann es nicht so gut erklären aber schaut euch die Stelle des Codes doch einfach mal selbst an.
$dateiendung=".xml"; $verzeichnis="stoffe/";
echo "
<br>
<b>Stoffe nach UN - Nummer sortiert:</b><br><br>";
$verz=opendir($verzeichnis);
$unsrt=array();
$filelink=array();
while ($file=readdir($verz)) {
if ($file != substr_count($file, $dateiendung) && $file != "." && $file != "..") {
$regs="";
$datei=fopen($verzeichnis . $file, "r");
$inhalt=fread($datei, 100);
ereg("<un>(.*)</un>", $inhalt, $regs);
array_push($filelink, $file);
array_push($unsrt, $regs[1]);
fclose ($datei);
}
}
closedir($verz);
natsort ($unsrt);
$x=0;
echo "<table>";
foreach ($unsrt as $output) { if ($output != "") { $i+=1;
if ($i == 1) { echo "
<tr>
<td bgcolor = "#C0C0C0">
<a href = "?stoff=$verzeichnis$filelink[$x]">$output</a>
<br>
</td>
</tr>
\r"; }
if ($i == 2) { echo "
<tr>
<td bgcolor = "#FFFFFF">
<a href = "?stoff=$verzeichnis$filelink[$x]">$output</a>
<br>
</td>
</tr>
\r"; } }
if ($i == 2) { $i=0; } $x++; }
echo "</table>";
Hi,
Ich lese aus einer Datei eine Zahl aus und füge sie einem Array hinzu. Der Dateiname wird in einem anderem Array gespeichert.
Wenn dies für alle Dateien im Verzeichnis passiert ist wird erst einmal das Array mit der Zahl sortiert. Da ist auch schon das problem. Wenn ich nun beide Arrays in gleicher Reihenfolge als Textlink schreibe stimmt die Zuordung nicht mehr.
Na so ein Wunder - du hast das Schlafzimmer also aufgeraeumt, aber im Wohnzimmer sieht's immer noch aus wie Sau - und das erstaunt dich jetzt wirklich ...?
Vorschlag: Packe Zahl und Dateinamen jeweils in einem Unter-Array zusammen, und sortiere das ganze dann mittels einer kleinen selbstdefinierten Vergleichsfunktion und usort.
MfG ChrisB
Danke für die schnelle antwort.
Es hat mich aber nicht verwundert wieso das so war, sondern ich wusste nicht wie ich das Problem lösen kann.