Huhu Klaus
Nur irgendwie funktioniert das bei mir nicht, entweder setzt er das erste oder letzte Element vom aktiv Array auf 1 aber alle anderen Felder werden mit 0 gesetzt.
$bestand = array();
$aktiv = array();$bestand = "101111;102111;103111;104111;105111;106111;107111;108111;109111;110111";
$aktiv = "101111;103111;104111;105111;108111;109111";$array_bestand = array();
$array_aktiv = array();$array_bestand = explode(';', $bestand);
$array_aktiv = explode(';', $aktiv);$anzahl_bestand = count ($array_bestand);
$anzahl_aktiv = count ($array_aktiv);for ($i=0; $i <$anzahl_bestand; $i++)
{
$array_liste[$i][0]= $array_bestand[$i];for ($y=0; $y <$anzahl_aktiv; $y++)
{
if ($array_bestand[$i] == $array_aktiv[$y])
{
$array_liste[$i][1]= 1;
}
else
{
$array_liste[$i][1]= 0;
}
}
}
Was habe ich denn da falsch gemacht?
Da steckt folgender logischer Fehler drin.
Die For-Schleife welche über $y läuft, geht immer
_alle_ Elemente des $array_bestand durch und
setzt jeweils $array_liste[$i][1] auf 0 oder 1.
Als Ergebnis erhältst Du immer das Ergebnis des _letzten_ Durchganges.
Ein Lösung könnte folgendes sein
// default 0 setzen
$array_liste[$i][1]= 0;
for ($y=0; $y <$anzahl_aktiv; $y++)
{
if ($array_bestand[$i] == $array_aktiv[$y])
{
$array_liste[$i][1]= 1;
// wenn gefunden diese for-Schleife beenden
break;
}
}
Wenn ich Deine Aufgabe-/Problemstellung richtig verstanden habe
könnte Dir die PHP-Funktion array_diff einiges an Arbeit abnehmen ;-)
http://de2.php.net/manual/en/function.array-diff.php
Viele Grüße
lulu
bythewaythewebsuxgoofflineandenjoytheday