phpbar.de logo

Mailinglisten-Archive

[php] Re: Re: [php] Arrays vergleichen mit PHP3

[php] Re: Re: [php] Arrays vergleichen mit PHP3

Peter Holm PHolm_(at)_gmx.de
Thu, 20 Jan 2000 23:11:51 +0100


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