mehrstellige zahl trennen

kase

Erfahrenes Mitglied
Hi,
ich möchte, wenn das Ergebnis mehrstellig ist die Zahl trennen:

PHP:
$zahl1 = "6";
$zahl2 = "6";
//eigentliche Rechnung
$ergebis1 = $zahl1 + $zahl2;

Ich möchte nun bei einem mehrstelligen Ergebnis, z.B. 12, nun 1 + 2 nochmal zusammenzählen. Bis ein einstelliges Ergebnis raus kommt, ist so was möglich?

Danke, kase
 
Was ist denn "Ziel" des scripts? Eventuell würde ich was mit module versuchen...

Ansonsten kannst du ja mit den string-Funktionen arbeiten. substr() und strlen() sind da wohl die brauchbarsten Funktionen
 
Probier mal folgende Funktion:
PHP:
<?php

	function quersumme($zahl)
	{

		if( !is_numeric($zahl) ) {
			return false;
		}

		$zahl = (string) $zahl;
		$return = 0;

		for($i=0; $i<strlen($zahl); $i++) {
			$return += $zahl{$i};
		}

		return $return;

	}

?>
 
so?:

PHP:
if (empty($_GET["submit"])) {


echo "Gib die ersten 5 Ziffern deiner Handynummer ohne Vorwahl ein.<br><form name='form1' method='GET' action='handy.php'>
XXXX
  <input name='n1' type='text' size='1' maxlength='1'>
    <input type='text' name='n2' size='1' maxlength='1'>
	  <input type='text' name='n3' size='1' maxlength='1'>
	    <input type='text' name='n4' size='1' maxlength='1'>
		  <input type='text' name='n5' size='1' maxlength='1'>
  	XX  <p>
	  <input type='submit' name='submit' value='Submit'>
	  <input type='reset' name='reset' value='Reset'>
	  </p>
</form>";
} else {
$n1 = $_GET["n1"];
$n2 = $_GET["n2"];
$n3 = $_GET["n3"];
$n4 = $_GET["n4"];
$n5 = $_GET["n5"];

$ms = "10";

//funktion


    function quersumme($zahl)
    {

        if( !is_numeric($zahl) ) {
            return false;
        }

        $zahl = (string) $zahl;
        $return = 0;

        for($i=0; $i<strlen($zahl); $i++) {
            $return += $zahl{$i};
        }

        return $return;

    } 

//rytmus1

$ryt11 = $n1 + $n2;
	if ($ryt11 < $ms) {
	$sryt11 = quersumme($ryt11);
	} else {
	$sryt11 = $ryt41;
	}
$ryt12 = $n2 + $n3;
	if ($ryt12 < $ms) {
	$sryt12 = quersumme($ryt12);
	} else {
	$sryt12 = $ryt41;
	}
$ryt13 = $n3 + $n4;
	if ($ryt13 < $ms) {
	$sryt13 = quersumme($ryt13);
	} else {
	$sryt13 = $ryt41;
	}
$ryt14 = $n4 + $n5;
	if ($ryt14 < $ms) {
	$sryt14 = quersumme($ryt14);
	} else {
	$sryt14 = $ryt41;
	}

//rytmus2

$ryt21 = $sryt11 + $sryt12;
	if ($ryt21 < $ms) {
	$sryt21 = quersumme($ryt21);
	} else {
	$sryt21 = $ryt41;
	}
$ryt22 = $sryt12 + $sryt13;
	if ($ryt22 < $ms) {
	$sryt22 = quersumme($ryt22);
	} else {
	$sryt22 = $ryt41;
	}
$ryt23 = $sryt13 + $sryt14;
	if ($ryt23 < $ms) {
	$sryt23 = quersumme($ryt23);
	} else {
	$sryt23 = $ryt41;
	}

//rytmus3

$ryt31 = $ryt21 + $ryt22;
	if ($ryt31 < $ms) {
	$sryt31 = quersumme($ryt31);
	} else {
	$sryt31 = $ryt41;
	}
$ryt32 = $ryt22 + $ryt23;
	if ($ryt32 < $ms) {
	$sryt32 = quersumme($ryt32);
	} else {
	$sryt32 = $ryt41;
	}

//rytmus4
$ryt41 = $ryt31 + $ryt32;
	if ($ryt41 < $ms) {
	$sryt41 = quersumme($ryt41);
	} else {
	$sryt41 = $ryt41;
	}


//Ergebnis

	if ($sryt41 < $ms) {
	$ergebnis = quersumme($ryt41);
	} else {
	$ergebnis = $ryt41;
	}


echo "$ergebnis";

}
 
Zuletzt bearbeitet:
PHP:
<?php

  $zahl1 = 2312;
  $zahl2 = 123;

   // 2435
   // 14
   // 5 <- sollte das ergebniss sein dann  

  $sum = $zahl1+$zahl2;
   
  while($sum > 10){
  $zwi_sum = 0;
  
      for($i=0;$i <= strlen($sum);$i++){ 
          $zwi_sum += (int)substr($sum,$i,1);
       }
      $sum = $zwi_sum;
  }
  
  echo $sum;
?>

damit klappt es , wenn sowas dabei rauskommen sollte
 
Zurück