PHP: $var[n] funktionslos

Anno

Lt. Commander
Registriert
Sep. 2007
Beiträge
1.387
Hi Leute,

ich steh grade auf dem Schlauch.
Ich will in Zeile 14 die 1. Stelle von $quadrat ausgeben lassen. Aber der zeigt mir nichts an.

Weiß jemand warum?

Code:
<?php

for ($count = 1; $count < 10000; $count++)
{
echo "Zahl: " . $count;
$zahl = $count;
$quadrat = pow($zahl,2);

echo " Quadratzahl: " . $quadrat;


 if (strlen($quadrat) == 4)
	{
	echo " ___ 1. Stelle:".$quadrat[0] ."<---";
	}
echo "<br>";
}
?>

Danke!
 
jop mach mach die arraybezeichnung [0] weg, dann müsste es gehen

edit oder so ;)
 
Danke icq-breaker und vorallem Yuuri.

Stevez, was meinst du mit damit?
 
na ja... $quadrat ist ist kein Array. Es ist wahlweise ein Integer oder ein Float, je nachdem was bei pow() raus kommt. Ich glaub, deine Herangehensweise ist nicht unbedingt ideal.
 
Wie kann ich denn $var[0-9] ausgeben?

Kriegs nicht hin ... :(


Bzw. gibt es eine Funktion, die jede Ziffer einer Zahl (bzw. Variable) mit allen anderen der gleichen Zahl vergleicht?

Z. B. so:

12345 = ja
11123 = nein
13579 = ja
19999 = nein
13360 = nein
usw.

Es darf also jeder Ziffer einer Zahl nur einmal vorkommen ...

Danke!
 
Was willst du mit $var[0-9] machen? Falls du alle hintereinander ausgeben willst, gibt es Schleifen, alternativ substr().

Die Vergleichsfunktion musst du dir selbst schreiben.
 
Konkret geht es darum, dass ich 10-stellige Zahlen ausgeben will, in denen jede Ziffer aber nur einmal vorkommt.

z. B.:
1234567890
9876543210
1236549870

Schleife(n) würde auch gehen, finde ich aber etwas umständlich.
Ergänzung ()

So funktioniert es zwar, ist aber sehr unschön und lang.

Hat jemand ne bessere Idee?

Code:
 if (strlen($quadrat) == 10)
	{
	if(
	$quadrat_s[0] != $quadrat_s[1] &&
	$quadrat_s[0] != $quadrat_s[2] &&
	$quadrat_s[0] != $quadrat_s[3] &&
	$quadrat_s[0] != $quadrat_s[4] &&
	$quadrat_s[0] != $quadrat_s[5] &&
	$quadrat_s[0] != $quadrat_s[6] &&
	$quadrat_s[0] != $quadrat_s[7] &&
	$quadrat_s[0] != $quadrat_s[8] &&
	$quadrat_s[0] != $quadrat_s[9] &&
	
	$quadrat_s[1] != $quadrat_s[0] &&
	$quadrat_s[1] != $quadrat_s[2] &&
	$quadrat_s[1] != $quadrat_s[3] &&
	$quadrat_s[1] != $quadrat_s[4] &&
	$quadrat_s[1] != $quadrat_s[5] &&
	$quadrat_s[1] != $quadrat_s[6] &&
	$quadrat_s[1] != $quadrat_s[7] &&
	$quadrat_s[1] != $quadrat_s[8] &&
	$quadrat_s[1] != $quadrat_s[9] &&
	
	$quadrat_s[2] != $quadrat_s[0] &&
	$quadrat_s[2] != $quadrat_s[1] &&
	$quadrat_s[2] != $quadrat_s[3] &&
	$quadrat_s[2] != $quadrat_s[4] &&
	$quadrat_s[2] != $quadrat_s[5] &&
	$quadrat_s[2] != $quadrat_s[6] &&
	$quadrat_s[2] != $quadrat_s[7] &&
	$quadrat_s[2] != $quadrat_s[8] &&
	$quadrat_s[2] != $quadrat_s[9] &&
	
	$quadrat_s[3] != $quadrat_s[0] &&
	$quadrat_s[3] != $quadrat_s[1] &&
	$quadrat_s[3] != $quadrat_s[2] &&
	$quadrat_s[3] != $quadrat_s[4] &&
	$quadrat_s[3] != $quadrat_s[5] &&
	$quadrat_s[3] != $quadrat_s[6] &&
	$quadrat_s[3] != $quadrat_s[7] &&
	$quadrat_s[3] != $quadrat_s[8] &&
	$quadrat_s[3] != $quadrat_s[9] &&
	
	$quadrat_s[4] != $quadrat_s[0] &&
	$quadrat_s[4] != $quadrat_s[1] &&
	$quadrat_s[4] != $quadrat_s[2] &&
	$quadrat_s[4] != $quadrat_s[3] &&
	$quadrat_s[4] != $quadrat_s[5] &&
	$quadrat_s[4] != $quadrat_s[6] &&
	$quadrat_s[4] != $quadrat_s[7] &&
	$quadrat_s[4] != $quadrat_s[8] &&
	$quadrat_s[4] != $quadrat_s[9] &&
	
	$quadrat_s[5] != $quadrat_s[0] &&
	$quadrat_s[5] != $quadrat_s[1] &&
	$quadrat_s[5] != $quadrat_s[2] &&
	$quadrat_s[5] != $quadrat_s[3] &&
	$quadrat_s[5] != $quadrat_s[4] &&
	$quadrat_s[5] != $quadrat_s[6] &&
	$quadrat_s[5] != $quadrat_s[7] &&
	$quadrat_s[5] != $quadrat_s[8] &&
	$quadrat_s[5] != $quadrat_s[9] &&
	
	$quadrat_s[6] != $quadrat_s[0] &&
	$quadrat_s[6] != $quadrat_s[1] &&
	$quadrat_s[6] != $quadrat_s[2] &&
	$quadrat_s[6] != $quadrat_s[3] &&
	$quadrat_s[6] != $quadrat_s[4] &&
	$quadrat_s[6] != $quadrat_s[5] &&
	$quadrat_s[6] != $quadrat_s[7] &&
	$quadrat_s[6] != $quadrat_s[8] &&
	$quadrat_s[6] != $quadrat_s[9] &&
	
	$quadrat_s[7] != $quadrat_s[0] &&
	$quadrat_s[7] != $quadrat_s[1] &&
	$quadrat_s[7] != $quadrat_s[2] &&
	$quadrat_s[7] != $quadrat_s[3] &&
	$quadrat_s[7] != $quadrat_s[4] &&
	$quadrat_s[7] != $quadrat_s[5] &&
	$quadrat_s[7] != $quadrat_s[6] &&
	$quadrat_s[7] != $quadrat_s[8] &&
	$quadrat_s[7] != $quadrat_s[9] &&
	
	$quadrat_s[8] != $quadrat_s[0] &&
	$quadrat_s[8] != $quadrat_s[1] &&
	$quadrat_s[8] != $quadrat_s[2] &&
	$quadrat_s[8] != $quadrat_s[3] &&
	$quadrat_s[8] != $quadrat_s[4] &&
	$quadrat_s[8] != $quadrat_s[5] &&
	$quadrat_s[8] != $quadrat_s[6] &&
	$quadrat_s[8] != $quadrat_s[7] &&
	$quadrat_s[8] != $quadrat_s[9] &&
	
	$quadrat_s[9] != $quadrat_s[0] &&
	$quadrat_s[9] != $quadrat_s[1] &&
	$quadrat_s[9] != $quadrat_s[2] &&
	$quadrat_s[9] != $quadrat_s[3] &&
	$quadrat_s[9] != $quadrat_s[4] &&
	$quadrat_s[9] != $quadrat_s[5] &&
	$quadrat_s[9] != $quadrat_s[6] &&
	$quadrat_s[9] != $quadrat_s[7] &&
	$quadrat_s[9] != $quadrat_s[8] 
	)
	{echo $zahl;}
	}
 
Zuletzt bearbeitet:
Sind Schleifen so umständlich?
Code:
	$result = true;
	for ($i = 0; $i < 10; $i++) {
		if (strpos($quadrat_s, (string)$i) === false) {
			$result = false;
			break;
		}
	}
	echo "Alle Zahlen unterschiedlich: ".($result?"ja":"Nein");
Man kann das sicher auch schöner in eine Funktion umschreiben.

Edit: Vorher natürlich noch abfragen, ob die Länge = 10 ist.
 
Falls du mitzählen willst, wie oft eine Zahl vorkommt:
Code:
$digits = array();

for( $i = 0; $i < strlen( $number ); $i++ )
  if( isset( $digits[(int)$number[$i]] ) ) ++$digits[(int)$number[$i]];
  else $digits[(int)$number[$i]] = 1;
Aber sieh dir bitte mal Tutorials zu PHP an... und überlege, wie du dein Problem selbst lösen kannst.
 

Ähnliche Themen

M
Antworten
10
Aufrufe
1.700
Mr. Snoot
M
Zurück
Oben