• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Zahlen als Array und Zeichen als Array berechnen

Rocky007

Mitglied
Hallo,

ich habe verschiedene Zahlenfolgen wie z.b:
52413, 52341

und dazu 4 operatoren, die zwischen die Zahlen sollen.

Beispiel:
$operatoren= array("*","+","-","-");
$zahlen = array("5,2,4,1,3", "5,2,3,4,1");

nun soll jeweils ein operator zwischen 2 zahlen geschrieben werden und das ergebnis berechnet werden.

Mein Ansatz dazu:

Code:
<?
$operatoren= array("*","+","-","-");
$zahlen = array("5,2,4,1,3", "5,2,3,4,1");

foreach($zahlen as $zahl) {
    $zahl = explode(",", $zahl);

    for($i=0; $i < sizeof($zahl); $i++) {
        $ergebnis = $zahl[$i].$operatoren[$i];
    }
    echo $ergebnis."<br>";
}
?>

Leider stimmt das Ergebnis leider nicht:
bei zahlen[0] müsste "10" und bei zahlen[1] müsste "8" rauskommen.

Mein $ergebnis gibt aber bei zahlen[0] "3" und bei zahlen[1] "1" aus...

Wo habe ich hier einen Denkfehler?
Es sollen in zukunft nur die operatoren getauscht werden.
 
Werbung:
irgendwie kapier ich gerade nicht wie bei $zahlen[1] = 8 raus kommen soll.
Willst du zuerst alle Zahlen multiplizieren und dann alle zahlen addieren.

Also hier habe ich eine unsaubere Lösung wenn
5*2
2+4
4-1
1-3

berechnet werden soll

PHP:
$operatoren= array("*","+","-","-");
$zahlen = array("5,2,4,1,3", "5,2,3,4,1");

foreach($zahlen as $zahl) {
   $zahl = explode(",", $zahl);

   for($i=0; $i < sizeof($zahl)-1; $i++) {
     $ergebnis = $zahl[$i].$operatoren[$i].$zahl[$i+1];
     eval('echo ' . $ergebnis . ';');
     echo "<br />";
   }
}

eval ist nun da, weil du keine Strings berechnen kannst.

Ergebnis:
10
6
3
-2
10
5
-1
3
 
Wenn du das erste nimmst sollte die Rechnung wie folgt sein:

$operatoren= array("*","+","-","-");
$zahlen = array("5,2,4,1,3", "5,2,3,4,1");

5*2+4-1-3

Diesen berechneten Wert (1) soll er ausgebnen
 
Zuletzt bearbeitet:
Werbung:
Ich hab es nun raus, aber ist etwas schwer zu erklären für mich gerade :D

PHP:
$operatoren= array("*","+","-","-");
$zahlen = array("5,2,4,1,3", "5,2,3,4,1");

foreach($zahlen as $zahl) {
   $zahl = explode(",", $zahl);
   
   foreach($zahl as $ziffer) {
     $ergebnis = NULL;
     for($i=0; $i < sizeof($zahl); $i++) {
       $ergebnis .= $zahl[$i].$operatoren[$i];
     }   
   }
   
   eval('echo ' . $ergebnis . ';');
   echo "<br />";
}
 
Danke funktioniert perfekt....

Nun möchte ich den Aktuellen Tag über
Code:
$tag = date("j", time());

ermitteln und den Eintrag sowie die Position im array bestimmen und ausgeben

das müsste ja mit array_search gehen oder?
 
Zurück
Oben