php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.11.2004, 14:19  
Gast
 
Beiträge: n/a
Standard Endlosschleife mit Array?!

Hallo,
ich hab ein Script programmiert, welches mir ein Pascalsches Dreieck erstellen soll.

PHP-Code:
<?php
$max_rows 
15// Maximale Anzahl an auszurechnenden Reihen
$rows 3// Anzahl der auszurechnenden Reihen

  
$dreieck = array( // Matrix definieren
              
=> array( // 1. Reihe schon gegeben
                    
=> 1
                   
),
              
=> array( // 2. Reihe auch
                    
=> 1,
                    
=> 1
                   
)
             );
  for(
$i=3;$i<$rows;$i++) {
    for(
$j=1;$j<$i+1;$j++) {
      if (
$j=1) {
        
$dreieck[$i][$j] = 1;
      } elseif (
$j=$i) {
        
$dreieck[$i][$j] = 1;
      } else {
        
$dreieck[$i][$j] = $dreieck[$i-1][$j-1]+$dreieck[$i-1][$j];
      }
    }
  }
  for(
$i=1;$i<count($dreieck)+1;$i++) {
    for(
$j=1;$i<count($dreieck[$i])+1;$j++) {
      
$zahl $dreieck[$i][$j];
      echo 
$zahl."";
    }
  }
?>
Allerdings ergibt das nur unendlich oft eine "1".
Mit "array_push" habe ich es auch schon probiert, hat auch nicht funktioniert.
"print_r($dreieck);" gibt "Array ( [1] => Array ( [1] => 1 ) [2] => Array ( [1] => 1 [2] => 1 ) ) 1" aus, was im oberen Teil schon vorgegeben ist. Weiß jemand, was ich falsch gemacht habe? Wäre für jeden Tipp dankbar!

Die Matrix ist so aufgebaut:


thx im vorraus,
DaNnYy
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.11.2004, 14:40  
Gast
 
Beiträge: n/a
Standard

Zitat:
if ($j=1) {
Möchtest du vergleichen ob $j gleich 1 ist? Dann versuche es mal mit == statt =
 
Alt 05.11.2004, 15:00  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von -->bigJay<--
Möchtest du vergleichen ob $j gleich 1 ist? Dann versuche es mal mit == statt =
Oh, peinlich *schäm* Passiert mir total oft...

Aber die Endlosschleife bleibt. Jetzt wird eine "1" und dann unednlich viele Leerzeichen ausgegeben.

Was ist da falsch? Ich probier schon seit über 2 Tagen daran herum.

thx
DaNnYy
 
Alt 05.11.2004, 15:08  
Gast
 
Beiträge: n/a
Standard

Zitat:
for($i=3;$i<$rows;$i++) {
er fängt mit 3 zu zählen solang bis $i kleiner als $rows=3 ist ??????
Ich kann den konkreten Fehler grad auch nicht finden, dazu müsste ich das mal kurz testen--> geht aber net muss jetzt dringend weg. Aber eigentlich würde ich so etwas mit einer Funktion darstellen, ich bin der Meinung es würde mit einer Funktion leichter gehen.
 
Alt 05.11.2004, 15:26  
Gast
 
Beiträge: n/a
Standard

Danke für die Antworten!
"3" war nur mein letzter Test. Mit anderen Zahlen (>3) funktioniert es auch nicht.
Die Endlosschleife passiert erst bei der Ausgabe, habe ich gerade festgestellt.

Die dritte Reihe der Matrix wird auch noch richtig gefüllt. Nur danach geht's nicht richtig weiter. "push_array" liefert: Array ( [1] => Array ( [1] => 1 ) [2] => Array ( [1] => 1 [2] => 1 ) [3] => Array ( [] => 0 [1] => 1 [2] => 2 [3] => 1 ) [4] => Array ( [4] => 1 ) [5] => Array ( [5] => 1 ) )
Sind also gleich zwei Probleme

thx
DaNnYy
 
Alt 05.11.2004, 15:28  
Gast
 
Beiträge: n/a
Standard

du hast auch gesehen, dass nicht nur if($j==1) heißt, sondern auch bei elseif($j==$i) hinkommt?
 
Alt 05.11.2004, 16:10  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Paine
du hast auch gesehen, dass nicht nur if($j==1) heißt, sondern auch bei elseif($j==$i) hinkommt?
Jo, hab ich auch da geändert

thx
DaNnYy
 
Alt 05.11.2004, 16:17  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

PHP-Code:
  class pd {

    var 
$depth;
    var 
$values;

    function 
pd($depth) {
      
$this->depth $depth;
      
$this->values = array();
    }

    function 
generate($values = array(1), $level 0) {
      if (
$level == $this->depth)
        return;

      for (
$i=0$i<=$level$i++) {
        
$thatValues[$i] =
          ((isset(
$values[$i-1])) ? $values[$i-1] : 0) +
          ((isset(
$values[$i])) ? $values[$i] : 0);
      }

      
$this->values[$level 1] = $thatValues;

      
$this->generate($thatValues$level 1);

    }

    function 
show() {
      
$this->generate();
      for (
$i=1$i<=$this->depth$i++)
        echo 
'<pre style="text-align:center;">'.implode (' - '$this->values[$i]).'</pre>';
    }
  }
  
  
$Pd = &new pd(10);
  
$Pd->show(); 
probier mal sollte unkommentiert zu verstehen sein!?
derHund ist offline  
Alt 05.11.2004, 16:25  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von derHund
probier mal sollte unkommentiert zu verstehen sein!?
Ehrlich gesagt, ich versteh' nur Bahnhof
Ich check das ganze noch nicht so ganz. Ich bin froh, wenn ich eine Suchfunktion für eine Datenbank gebastelt hab ^^.

Aber: vielen, vielen Dank! Es funktioniert!!
DaNnYy
 
 


Themen-Optionen
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
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Soapfault: Undefined Property Argi PHP-Fortgeschrittene 0 28.07.2008 11:17
Kategoriedaten rekursiv in Array bringen Schiedsrichter PHP Tipps 2008 2 10.12.2007 15:43
ARRAY: alle möglichen Kombinationen Tentacle PHP Tipps 2006 13 12.05.2006 00:18
Übersicht aus mehrdimensionalem Array erzeugen Crypi PHP-Fortgeschrittene 0 30.01.2006 13:44
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Array wie auslesen? PHP Tipps 2005 7 07.03.2005 11:43
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php endlosschleife, endlosschleife php, array endlosschleife, array endlos, endlosschleife in php, for endlosschleife php, php pascalsches dreieck, php push_array, php pascalsche dreieck, php unendliche schleife, array endlos ausgeben, pascalsches dreieck php, php array rekursiv endlosschleife, java turnierbaum rekursion, pascalsches dreieck array, php script matrix, pascalsche dreieck php, php endlosschleife ungewollt, php ungewollte endlosschleife, php endlosschleife for

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:56 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.