Array Problem in der Scheife

bensky

Erfahrenes Mitglied
Hi Leute,
ich sitz jetzt 3 Stunden an nem dämlichen problem und hab jetzt aufgegeben.
Ihr seid meine letzte Hoffnung.
Ich versuch mal mein Problem zu schildern, aber zuerst der Code:
PHP:
$NEU = array();
$NEU1 = array();
for ($k=0; $k<count($x_array); ++$k)
{
	if($x_array[$k] != "0")
	{
		$karte->otherMarker($x_array[$k],$y_array[$k],'hi!' ,"map_point1.png");
		/*echo $x_array[$k];
		echo $y_array[$k];
		echo "<br>";*/
		$NEU1 = array($x_array[$k], $y_array[$k]);
		array_push($NEU,$NEU1);
		//$test1[] = array($x_array[$k], $y_array[$k]);
		//$test[] = ',';
    }
}
$punkte = array($NEU,array('52.5', '12.7'),array('51', '10'));

Eshandelt sich um ne Google Map Funktion.

Dies soll dabei rauskommen, wenn ich das wie hier manuell einfüge geht es.

-> $punkte = array(array('52.5', '12.7'),array('52.5', '13'),array('51.5', '12'),array('51', '10'),array('48', '11'),array('47.5', '13'));

Wenn ich das Array über die obige Schleife füllen will kommt nur das dabei raus:

var polyline = new GPolyline([

new GLatLng(Array,Array),
new GLatLng(52.5,12.7),
new GLatLng(51,10)],'#FF00FF',3,1,{geodesic:true});

Bzw. das: new GLatLng(Array,Array),

Ich habe schon alles versucht, den String zusammenführen geht auch nicht,
hat Jemand ne Idee? Oder hab ich das Problem zu schlecht beschrieben?

Ich sag aber trotzdem schon mal danke :)
 
Hallo,

was steht denn in den Arrays $x_array und $y_array genau drin? Am besten mal mit var_dump($x_array) ausgeben lassen und schreiben, was raus kommt.

Grüße,
Matthias
 
Da stehen je 2 Zahlen drin, längen und breitengrad. Z.b: 52.5,12.7
Das Problem ist das er dieWerte nicht ausgibt, sondern nur Array,Array.

Das Array dump auf $NEU sagt:
string(60) "Array,Array,Array,Array,Array,Array,Array,Array,Array,Array,"

auf $x_array sagt er das:(was auch einigermaßen richtig ist)
string(9) "43.723006" [1]=> string(10) "41.6987848" [2]=> string(11) "51.65597814" [3]=> string(11) "48.20908835" [4]=> string(11) "50.36873000" [5]=> string(8) "27.17394" [6]=> string(11) "52.51628615" [7]=> string(9) "39.709597" [8]=> string(11) "29.97501114" [9]=> string(11) "47.37702271" }

Den oben beschriebenen Fehler finde ich aber nicht..;( argh!
 
Hallo,

das Problem liegt vermutlich darin, dass $NEU schon ein Array von Arrays ist und du dieses in das Array $punkte einfügst. Stattdessen solltest du die $NEU und $punkte aneinanderhängen. Das klappt z.B. so:
PHP:
$punkte = $NEU + array(array('52.5', '12.7'),array('51', '10'));
oder so:
PHP:
$punkte = array_merge($NEU, array(array('52.5', '12.7'),array('51', '10')));
oder gleich so:
PHP:
$punkte = $NEU;
array_push($punkte, array('52.5', '12.7'));
array_push($punkte, array('51', '10'));

Grüße,
Matthias
 
Hi, danke für den Tip, aber das funktioniert auch nicht, ich glaube du hast das auch falsch verstanden.

Diese beiden Werte "array('52.5', '12.7'),array('51', '10')" habe ich nur in das array geschrieben um die ausgabe zu testen. Es soll später so aussehen.

$punkte = array($NEU);

in $NEU sollen dann die ganzen Werte stehen. Ein Wert soll so aussehen: array('52.5', '12.7')

Am Ende soll sowas da raus kommen $punkte = array(array('52.5', '12.7'),array('51', '10'),array('51.5', '14.7'),array('41', '8'),array('22.5', '22.7'),array('58', '12') ....... );

Ich kriege es einfach nicht hin ;(
 
Hi, danke für den Tip, aber das funktioniert auch nicht, ich glaube du hast das auch falsch verstanden.
Ich habe das genauso verstanden wie du es erklärt hast.

Diese beiden Werte "array('52.5', '12.7'),array('51', '10')" habe ich nur in das array geschrieben um die ausgabe zu testen. Es soll später so aussehen.

$punkte = array($NEU);
Wieso nicht einfach $punkte = $NEU;? Wie bereits beschrieben, ist $NEU bereits ein Array von Arrays. Wenn du das jetzt nochmal in ein Array schiebst, hast du ein Array von Arrays von Arrays.

Grüße,
Matthias
 
Naja, weil es leider nicht funktioniert.

Das wo die JS funktion aufgerufen werden soll steht immer

var polyline = new GPolyline([

var polyline = new GPolyline([

new GLatLng(A,R)'#FF0000',3,1,{geodesic:true});

map.addOverlay(polyline);

Statt:

var polyline = new GPolyline([

var polyline = new GPolyline([

new GLatLng(53.5,12.7),
new GLatLng(52.5,13),
new GLatLng(51.5,12),
new GLatLng(51,10),
new GLatLng(48,11),
new GLatLng(47.5,13)],'#FF0000',3,1,{geodesic:true});

map.addOverlay(polyline);

Ich muss die Array da irgendwie rein kriegen, ich weiß nur leider nicht wie.
Gruß Sven
 
Zuletzt bearbeitet:
Zurück