login  Naam:   Wachtwoord: 
Registreer je!
 Forum

getallen uit een string halen

Offline Raze - 02/01/2010 18:15
Avatar van RazePHP beginner Hallo,

ik heb een string, namelijk een tweedegraadsfunctie, bv 1x^2+2x-3.

Hoe kan ik nu de 1,2 en -3 in een array zetten?

Daarnaast heb ik geprobeerd om een reguliere expressie te maken om te kijken of de ingevoerde waarde een functie is, maar is deze correct. Ze werkt alleszins, maar ik heb ze nog niet uitvoerig getest.

  1. $reg_ex = "[0-9]x\^2+[+|-]+[0-9]x+[+|-]+[0-9]";

6 antwoorden

Gesponsorde links
Offline TotempaaltJ - 02/01/2010 20:09 (laatste wijziging 03/01/2010 13:15)
Avatar van TotempaaltJ PHP interesse Lijkt me simpel:

  1. $a = 1; // Verandert
  2. $b = 2; // Verandert
  3. $bt = '+';
  4. $c = -3; // Verandert
  5. $ct = '+';
  6. if($b < 0) $bt = '';
  7. if($c < 0) $ct = '';
  8.  
  9. $formule = $a . 'x^2' . $bt . $b .'x' . $ct . $c;


Uit mijn hoofd, dus niet getest ...

Edit: Nvm, niet goed gelezen xD
Offline ArieMedia - 02/01/2010 22:35
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
  1. <?php
  2. $sTest = '{([0-9]+)x\^([0-9]+)\+([0-9]+)x([0-9\-]+)}';
  3. $sInput = '1x^2+2x-3';
  4.  
  5. $aOut = preg_match($sTest, $sInput, $aMatch);
  6.  
  7. echo '<pre>'.print_r($aMatch, 1).'</pre>';
  8. ?>


Return: Array
(
[0] => 1x^2+2x-3
[1] => 1
[2] => 2
[3] => 2
[4] => -3
)
Offline Stijn - 02/01/2010 22:57
Avatar van Stijn PHP expert f(x) := x^2 + 1 is ook een tweedegraads functie maar zal niet werken in je regex.
Offline Raze - 03/01/2010 13:21
Avatar van Raze PHP beginner @stijn: idd ma die regex ben ik wel nog aant uitbreiden, wil nu gewoon dat hij "één type" herkend, en vooral dat hij de cijfers eruit haalt.
Offline Koen - 03/01/2010 13:28
Avatar van Koen PHP expert *iemand* is hier lui en wil zijn discriminant graag automatisch laten uitrekenen 
Offline Raze - 03/01/2010 15:31
Avatar van Raze PHP beginner koen heeft mij door   

nee ben gewoon heel geinteresseerd in de combinatie wiskunde-php  

ik heb dat van arie geprobeerd, dat werkt dus ik kan mijn cijfers er nu al uithalen. Nu enkel nog het probleem dat stijn aankaart, en ik heb geen idee hoe ik mijn regex moet aanpassen zodat je ook x^2+1 ofzo kan ingeven, dat die dat dan ook goedkeurt.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.229s