j4nk3y: Kleines Logisches/Syntax Problem

Beitrag lesen

Hallöle,

Ne hab die gleiche Indizierung verwendet wie vorher auch... hab aber immer nur die "Stringstellen" angezeigt bekommen, aber nun krieg ich den gesamten Float zurück. Frag mich nicht warum, ich hab die echos immer nur aus bzw. ein kommentiert.

ganz ehrlich: Ich glaube nicht. Und vorneweg: Mir ist das egal und ich freue mich, wenn es bei Dir funktioniert. Egal wie. Aber für andere, die eventuell das gleiche Problem wie Du haben, wäre es wohl hilfreich, eine Lösung zu sehen. Ich tippe also darauf, dass Du sowas hattest (und korrigiere mich bitte, wenn ich falsch liege):

$array = array();
$array[0] = 'test';

// In diesem Fall richtiger Zugriff
echo $array[0]; // ergibt 'test'

// In diesem Fall falscher Zugriff
echo $array[0][0]; // ergibt, aufgrund von ein bisschen "PHP-Magie", 't'

Bei tiefer verschachtelten Arrays und auch, wenn in $array[0] eine Zahl stehen würde, natürlich äquivalent.

Nein genau richtig.

Es war spät gestern Abend... Ich hatte unlängst alles hintermir gelassen und wollte seelig einschlafen. Als plötzlich, wie aus dem nichts, mir die Antwort ins Gesicht sprang.

while($arr = mysql_fetch_array($result))
{
    $array[] = $arr;
}

Ohne das hier, sieht das Array auf den ersten Blick eindimensional aus. Beachtet man die Strings ergibt das echo genau wie du sagst die Stelle im String. Da es ja in wirklichkeit schon mehrdimensional ist. Mit der Schleife wird jedoch ein 'echtes' mehrdimensionales Array daraus und der Float wird mit dem 2ten Index angesprochen.

Ein dritter Index (etwa echo $array[0][0][1]) würde jetzt die Stelle im String ausgeben.

In diesem Sinne: Die Erkenntnis kommt, auch wenns etwas später wird :)

So Morgen witme ich mich dann wieder dem Anfangsproblem. da bin ich mittlerweile hier:

for($e = 0 ; $e < $count ; $e++)
{
	$abstand_unten = $array[$e][2] - $array[$e][0];
	$abstand_oben = $array[$e][2] - $array[$e][1];
	if ($abstand_unten < 0)
	{
		$abstand_be_unten = $abstand_unten * (-1);
	}
	else
	{
		$abstand_be_unten = $abstand_unten;
	}
	if ($abstand_unten < 0)
	{
		$abstand_be_oben = $abstand_oben * (-1);
	}
	else
	{
		$abstand_be_oben = $abstand_oben;
	}
	
	if($abstand_be_unten < $abstand_be_oben and $abstand_be_oben < $abstand)
	{
		$abstand = $abstand_be_unten;
		$radius_gesucht = $array[$e][2];
	}
	elseif($abstand_be_oben < $abstand_be_unten and $abstand_be_unten < $abstand)
	{
		$abstand = $abstand_be_oben;
		$radius_gesucht = $array[$e][2];
	}
}
echo $radius_gesucht;

(oder so ähnlich) Aber das funktioniert noch nicht ganz richtig.

Gruß Jo