Array Sortieren

DiDiJo

Erfahrenes Mitglied
Array durchsuchen

Hey Leute, ich hab ein Problem mit meinem Script:

Es geht darum das ich auf einer Homepage im rechten menü einstellbare objekte habe (Immobilien die in einem DIV ausgegeben werden).

Ich kan ndas leider nicht über eine DB abfrage machen, da jenachdem auf welcher Domain ich mich befinde (A oder B) ich eine andere Datenbank (A oder B) ansprechen muss. Allerdings ist nur in Datenbank A eine 'Settings' - Tabelle, die die Objektnummern und die Positionen listet.

So. Ich hab bin nun soweit das ich aus der einen DB meine Objekt.-Nr. mit Position kriege und aus der anderen die richtigen Immobiliendaten.

Array 1.
PHP:
$position[$x]['objektnr_extern']  = $row[objektnr_extern];
$position[$x]['position'] 		 = $row[position];

und

Array 2.
PHP:
$immo[$x]['objektnr_extern']	= $row['objektnr_extern'];
$immo[$x]['id'] 				= $row['id'];
$immo[$x]['pfad']				= $row['pfad'];			
$immo[$x]['kaufpreis'] 		= $row['kaufpreis'];
$immo[$x]['ort']			   	= $row['ort'];

so in etwa .... Nun möchte die beiden Arrays so zusammenpacken, dass in dem $immo Array an der Richtigen Stelle die Position steht.

Ich hab jetzt löange mit Array_merge und array_combine rumgefummelt, was aber nix gebracht hat ...

dann hab ich mir gedacht, ich könnte das Positionsfeld einfach an der Stelle hinzufügen, wo ich das Immo Array erzeuge. Also in etwa so.:
PHP:
		while ($row = mysql_fetch_array($rs)) {				
			$tmp_pos = array_search($row['objektnr_extern'],$position);	
			
			$immo[$x]['objektnr_extern']	= $row['objektnr_extern'];
			$immo[$x]['id'] 				= $row['id'];
			$immo[$x]['pfad']				= $row['pfad'];			
			$immo[$x]['kaufpreis'] 			= $row['kaufpreis'];
			$immo[$x]['kaltmiete'] 			= $row['kaltmiete'];
			$immo[$x]['vermarktungsart'] 	= $row['vermarktungsart'];
			$immo[$x]['objektart']		   	= $row['objektart'];
			$immo[$x]['ort']			   	= $row['ort'];			
			$immo[$x]['regionaler_zusatz'] 	= $row['regionaler_zusatz'];					
			$immo[$x]['position'] 			= $position[$tmp_pos]['position'];					
			$x++;
		}

da kriege ich für das $tmp_pos immer false raus. Kann mir jemand vlt. euch kurz sagen wo bei mir der wurm drinn steckt ?

Ok Leute ich habbet.... hier meine Lösung:
PHP:
	function sortierArray($a, $b)
	{
		if ($a['position'] == $b['position']) {
			return 0;
		}
		return ($a['position'] > $b['position']) ? 1 : -1;
	}

	function durchsucheArrayNachObjektnr($ar, $val)
	{
		foreach($ar as $k => $v){
			if ($v['objektnr_extern'] == $val) return $k;
		}
		return -1;
	}

	while ($row = mysql_fetch_array($rs)) {						
		$immo[$x]['objektnr_extern']	= $row['objektnr_extern'];
		$immo[$x]['id'] 				= $row['id'];
		$immo[$x]['pfad']				= $row['pfad'];			
		$immo[$x]['kaufpreis'] 			= $row['kaufpreis'];
		$immo[$x]['kaltmiete'] 			= $row['kaltmiete'];
		$immo[$x]['vermarktungsart'] 	= $row['vermarktungsart'];
		$immo[$x]['objektart']		   	= $row['objektart'];
		$immo[$x]['ort']			   	= $row['ort'];			
		$immo[$x]['regionaler_zusatz'] 	= $row['regionaler_zusatz'];					
		
		if ($setting['top_objekte_zufall'] == 'CONFIG') {
			$tmp_pos = durchsucheArrayNachObjektnr($position,$row['objektnr_extern']);	
			$immo[$x]['position'] = $position[$tmp_pos]['position'];
		}
		else $immo[$x]['position'] = $x;					
					
		$x++;
	}
			
	usort($immo, "sortierArray");


keine Top-Lösung aber in meinem Fall das einzige was funktionieren würde.
 
Zuletzt bearbeitet:
Zurück