Mailinglisten-Archive |
Hallo! Also es ist doch wirklich strange! Immer wenn ich in tiefer Verzweiflung eine weitere Mail an diese Liste schicke fällt mir kurze Zeit später dann doch noch eine Lösung ein. Das erwähnte Array-Problem hab ich jetzt doch noch hinbekommen, ich erlaube mir mal das zu posten, da es so wenig Antworten auf meine Anfrage gab und vielleicht der eine oder andere mit ähnlichem Problemen konfrontiert sein könnte. Elegant ist das nicht, das weiss ich auch, aber es funktioniert. Vielleicht könnte einer der Profis mal erklären, wie man sowas kürzer hinbekommt? Ätzend find ich, dass man nur einen return-wert zurückgeben kann, müsste also die Ergebnisse als 2d-Array zurückschicken, naja, auch egal... <? /* ©2000 Peter Holm, bitte erst fragen vor dem Abdruck in irgendwelchen Büchern oder sonstiger Veröffentlichung! ;-) */ function array_in_array($neu,$alt) { $gleiche = array(); $alte_raus = array(); $neue_rein = array(); $flag_u = 0; for ($i=0;$i<count($alt);$i++) { for ($j=0;$j<count($neu);$j++) { echo "Sind $alt[$i] und <b>$neu[$j]</b> gleich? --->"; if($alt[$i]!=$neu[$j]) { // ZUERST testen wir auf ungleiches Element echo "NEIN !!!<br>"; $flag_u=1; // Wenn ja, dann Flagge setzen! } else{ // wenn GLEICH echo "<b>JA!!!</b><br>"; $gleiche[]=$alt[$i]; $flag_u=0; break; } } if($flag_u==1) { echo "<br> Flag ist gesetzt, ungleicher wird eingeordnet!!!<br><br>"; $alte_raus[]=$alt[$i]; } } // jetzt vergleichen wir noch die neuen mit den gleichen, damit wir wissen, welche wir eintragen müssen $flag_u=0; for ($i=0;$i<count($neu);$i++) { for ($j=0;$j<count($gleiche);$j++) { echo "Sind $neu[$i] und <b>$gleiche[$j]</b> gleich? --->"; if($neu[$i]!=$gleiche[$j]) { // ZUERST testen wir auf ungleiches Element echo "NEIN !!!<br>"; $flag_u=1; // Wenn ja, dann Flagge setzen! } else{ // wenn GLEICH echo "<b>JA!!!</b><br>"; $flag_u=0; break; } } if($flag_u==1) { echo "<br> Flag ist gesetzt, gleiche werden eingeordnet!!!<br><br>"; $neue_rein[]=$neu[$i]; } } echo "<br>Folgende Ziffern müssen gelöscht werden: <b>"; for ($i=0;$i<count($alte_raus);$i++) {echo "$alte_raus[$i], ";} echo "</b><br>"; echo "<br>Folgende Ziffern sind neu und müssen eingetragen werden:<b>"; for ($i=0;$i<count($neue_rein);$i++) {echo "$neue_rein[$i], ";} echo "</b><br>"; echo "<br>Folgende Ziffern waren in beiden Arrays vorhanden: <b>"; for ($i=0;$i<count($gleiche);$i++) {echo "$gleiche[$i], ";} echo "</b><br>"; echo "Folgende Ziffern sind aus dem alten Array: <b>"; for ($i=0;$i<count($alt);$i++) {echo "$alt[$i], ";} echo "</b><br>"; echo "Folgende Ziffern sind aus dem neuen Array: <b>"; for ($i=0;$i<count($neu);$i++) {echo "$neu[$i], ";} return $alte_raus; }//endmainfnc $neu=array(3,4,5,6,7); $alt=array(1,2,8,5,7); array_in_array($neu,$alt); ?> Sorry wegen der Umbrüche, na Ihr wist schon... Schönen Thread noch, Peter
php::bar PHP Wiki - Listenarchive