Eurokicker
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 08.03.2005, 15:56   #1
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User

Array-Problem


Hallo zsamme,

ich habe folgendes Problem:

2 Arrays

$Standort[0]=>Array("Name"=>"","Strasse"=>"","PLZ"=>"",...)
$Standort[1]=>Array("Name"=>"","Strasse"=>"","PLZ"=>"",...)
$Standort[2]=>Array("Name"=>"","Strasse"=>"","PLZ"=>"",...)
usw

$Entfernung[0]=>Array("PLZ"=>"","Entfernung"=>"")
$Entfernung[1]=>Array("PLZ"=>"","Entfernung"=>"")
$Entfernung[2]=>Array("PLZ"=>"","Entfernung"=>"")

Die Arrays sind so vorgegeben und können nicht geändert werden.

Nun durchlaufe ich das Array Standort und brauche dazu immer das Element aus Array2 mit der selben PLZ, um die Entfernung zu ermitteln.

Wie kann ich sozusagen die Arrays verknüpfen ? Gibt es vielleicht einen einfachen Weg, der mir mühsame Iterationen erspart ?
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten


Alt 08.03.2005, 16:11   #2
TP-Moderator
 
Benutzerbild von walter
 
Registriert seit: Jan 2004
Ort: Bayern, Regensburg
walter hilft, wo's gehtwalter hilft, wo's gehtwalter hilft, wo's geht
Also so als grober Ansatz würde mir da jetzt auch nur einfallen mit einer Schleife aus dem Array Entfernung die zugehörige PLZ zu suchen und dann die zugehörige Entfernung zu benutzen.

Eine andere Lösung als die Schleife fällt mir da jetzt nicht ein. Ich denke es muss zwangsweise jedes Element des Arrays durchsucht werden, bis halt die passende PLZ dabei ist. Also im schlimmsten Fall alle Elemente des Arrays.

Wenn jemand eine andere Lösung hat, mich würde sie auch interessieren!
walter ist offline   Mit Zitat antworten
Alt 08.03.2005, 16:46   #3
TP-Insider
 
Benutzerbild von HoRnominatoR
 
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
HoRnominatoR ist auf einem guten Weg
mach doch ein grosses array draus.

PHP-Code:
for($i=0$count=count($Standort); $i $count$i++):

    
$new_array[$i] = array_merge($Standort[$i], $Entfernung[$i]);
endfor; 
__________________
in eile kam er,
in schwarzem gewand,
aus den tiefen des waldes,
ein einsamer mann, ein geschoepf der freiheit,
ein geschoepf ohne furcht,
doch alle nannten sie ihn nur T O D
HoRnominatoR ist offline   Mit Zitat antworten
Alt 08.03.2005, 16:52   #4
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
@horminator
Die Kausalität ist doch eine andere. Es sind nicht $Standort[0] mit $Entfernung[0] verknüpft.
Der Schlüssel, der beide Arrays verbindet, ist PLZ.
Dieser kann übrigens mehrfach in Array1 vorkommen, aber nur einmal in Array2.

Wenn ich die so zusammenpappe, nutzt mir das leider nix.
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 08.03.2005, 16:53   #5
TP-Insider
 
Benutzerbild von HoRnominatoR
 
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
HoRnominatoR ist auf einem guten Weg
oder wenn die nicht uebereinstimmen:

PHP-Code:
foreach($Entfernung as $array):

    
$plz_array[$array['PLZ']] = $array['Entfernung'];
enforeach;

for(
$i=0$count=count($Standort); $i<$count$i++):

    
$Standort[$i]['Entfernung'] = $plz_array[$standort[$i]['PLZ']];
endfor; 
__________________
in eile kam er,
in schwarzem gewand,
aus den tiefen des waldes,
ein einsamer mann, ein geschoepf der freiheit,
ein geschoepf ohne furcht,
doch alle nannten sie ihn nur T O D
HoRnominatoR ist offline   Mit Zitat antworten
Alt 08.03.2005, 16:54   #6
DSB
TP-Veteran
 
Benutzerbild von DSB
 
Registriert seit: Mar 2005
Ort: Oyten
DSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKE
Ich mische mich mal ein weil ich ursprünglich das Problem hatte und mihc an Steffen gewandt habe.

Mein Ziel ist es ja ein großes Array zu machen.
Leider kann die Zuordnung
Code:
array_merge($Standort[$i], $Entfernung[$i]);
so nicht gemacht werden, weil der Index $i eben nicht stimmt.
Diese Zuordnung muss ja erst geschaffen werden.

Zur Zeit habe ich das wirklich über eine eigene Schleife gelöst, die ermittelt welche Entfernung zu einer PLZ gehört und diese dann in das erste Array einfügt.
Es müsste aber doch auch eleganter gehen, oder?
Code:
function get_entfernung($plz)
{
	global $entfernung;
	$ret=0;
	$anz=sizeof($entfernung);
	for ($i=0;$i<$anz;$i++)
	{
		if ($entfernung[$i]['plz']==$plz)
		{
			$ret=$entfernung[$i]['entfernung'];
			break;
		}
	}
	return $ret;
}

for ($i=0;$i<sizeof($standorte);$i++)
{
	$standorte[$i]['entfernung']=get_entfernung($standorte[$i]['plz']);
}
DSB ist offline   Mit Zitat antworten
Alt 08.03.2005, 16:56   #7
TP-Veteran
 
Benutzerbild von heatseeker
 
Registriert seit: Jun 2003
Ort: Aachen
heatseeker bringt sich richtig einheatseeker bringt sich richtig ein
erstmla kannst du statt for schleigen besser foreach benutzen...

ansonsten hab ich schon umständlicheres gesehen...
heatseeker ist offline   Mit Zitat antworten
Alt 08.03.2005, 17:05   #8
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
hi Daniel, welcome on board
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 08.03.2005, 17:06   #9
TP-Insider
 
Benutzerbild von HoRnominatoR
 
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
HoRnominatoR ist auf einem guten Weg
Zitat:
erstmla kannst du statt for schleigen besser foreach benutzen...
who cares? der key ist immer numerisch, die for-schleife kaum komplizierter. die performance scheint gleich zu sein.
__________________
in eile kam er,
in schwarzem gewand,
aus den tiefen des waldes,
ein einsamer mann, ein geschoepf der freiheit,
ein geschoepf ohne furcht,
doch alle nannten sie ihn nur T O D
HoRnominatoR ist offline   Mit Zitat antworten
Alt 08.03.2005, 17:15   #10
DSB
TP-Veteran
 
Benutzerbild von DSB
 
Registriert seit: Mar 2005
Ort: Oyten
DSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKE
Naja, es geht ja hier nicht darum die Schleife zu optimieren sondern grundsätzlich um die Frage wie man 2 Arrays miteinander verknüpfen kann, wenn sich der eindeutige Schlüssel als Unter-Key im Array befindet.

Bei kleinen Datenmengen klappt die obige Variante ja ganz gut, aber was ist wenn ich mal 30.000 Zuordnungen machen muss. Da muss es doch eine bessere Variante der Zuordnung geben - hoffe ich zumindest. *g*

@Steffen
Danke für den Willkommensgruß. *freu*
DSB ist offline   Mit Zitat antworten
Alt 08.03.2005, 17:18   #11
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
ist verflixt schwierig.
Ich hatte schon daran gedacht, das es irgendeine Array-Funktion gibt, die man anwenden kann wie z.B. array_intersect_assoc, komm aber nicht auf einen grünen Zweig, da hier das zu verknüpfende Element erst an 2. Stelle steht.
Kann halt nicht so gut mehrdimensional denken
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 08.03.2005, 17:32   #12
TP-Insider
 
Benutzerbild von HoRnominatoR
 
Registriert seit: Dec 2003
Ort: nienburg (raum hannover)
HoRnominatoR ist auf einem guten Weg
mal davon abgesehen, dass ich mich zwei mal verschrieben habe, funktioniert meine variante einwandfrei - danach kannst du immer auf Standort[$i]['Entfernung'] zugreifen.
__________________
in eile kam er,
in schwarzem gewand,
aus den tiefen des waldes,
ein einsamer mann, ein geschoepf der freiheit,
ein geschoepf ohne furcht,
doch alle nannten sie ihn nur T O D
HoRnominatoR ist offline   Mit Zitat antworten
Alt 08.03.2005, 17:39   #13
TP-Specialist
 
Benutzerbild von theo
 
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
theo bringt sich richtig ein
Zitat:
Zitat von St@eff.en
Kann halt nicht so gut mehrdimensional denken
... kann ich auch nicht. aber wenn ich mir jetzt keinen knoten ins hirn gemacht habe, dann koennte das hier funzen:
PHP-Code:
for($i=0$i<count($Standort); $i++) {
for(
$a=0$a<count($Entfernung); $a++) {
(
$Standort[$i]['PLZ'] == $Entfernung[$a]['PLZ']) ?
echo 
$Entfernung[$a]['Entfernung'] : '';
}

gruss
hardy

EDIT
hehe ... da ist noch wer auf ne aehnliche idee gekommen!
theo ist offline   Mit Zitat antworten
Alt 08.03.2005, 20:55   #14
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
vielen Dank, ihr könnt die Hirne wieder entknoten
Das ist schon verdammt unübersichtlich, und mit einer einfachen array-function gehts wohl auch nicht.
Ich hatte irgendwie im Kopf, das man keys und werte austauschen kann, das funktioniert aber nur bei einfachen assoziativen arrays. Sobald es um grössere Strukturen geht wie hier, muss man das wohl in einer Funktion lösen.
Ich finde es auch sehr interressant, wie unterschiedlich die Lösungswege sein können
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 08.03.2005, 21:21   #15
TP-Specialist
 
Benutzerbild von theo
 
Registriert seit: Apr 2002
Ort: 743, evergreen terrace
theo bringt sich richtig ein
hast du das problem nun geloest? koennen eigentlich auch fuer eine plz mehrere entfernungen in frage kommen?
theo ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Array-Problem Array-Problem
« Replace Into ? Geht nicht | kein verbindung zum MySQL server »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit serialize und cookies xPliCt Traum-Dynamik 6 28.10.2004 12:50
Problem mit Array Billy Traum-Dynamik 0 21.10.2004 11:32