2016-04-05 4 views
0

Wie ersetze ich ein Wort in einer Zeichenfolge, um Wörter zu verbinden. Was meine ich damit, versuche i ‚x‘, um etwas anderesErsetzen Sie eine Char-Zeichenfolge in viele Zeichen Zeichenfolge in PHP

<?php 

    $equation = 'sin(x)'; 
    $length = strlen($equation); 

    for($i=0; $i<$length; $i++) { 

     if($equation[$i] == 'x') { 

      $equation[$i] = substr_replace('x','90',$equation); 
      echo $equation.'<br>'; 
      calc($equation); 
     } 
    } 
?> 

jedoch zu ersetzen, ist es nur den ersten Wert gelesen, die 9. ist, aber wenn ich lege nur eine Ziffer zum Beispiel

<?php 
    $equation = 'log(x)'; 
    $length = strlen($equation); 

    for($i=0; $i<$length; $i++) { 

     if($equation[$i] == 'x') { 

      $equation[$i] = substr_replace('x','1',$equation); 
      echo $equation.'<br>'; 
      calc($equation); 
     } 
    } 

?> 

kann die Gleichung mit anderen Codes empfangen und ausgewertet werden. Also, gibt es einen Weg?

+0

vielen Dank. Daran habe ich nie gedacht. Ich habe zuerst str_replace benutzt, aber nie gedacht, dass es wegen der Schleife nicht funktionierte. Vielen dank für Deine Hilfe. –

Antwort

1

Sie sollten die Zeichenfolge nicht manuell Schleife! Funktionen werden dafür gemacht!

Verwendung str_replace:

<?php 
$equation = 'log(x)'; 

str_replace("x","90", $equation); 

echo $equation.'<br>'; 

calc($equation); 
?> 
1

Hallo und Willkommen bei Stackoverflow. Sie müssen Ihre Zeichenfolge nicht loopen. Vorhandene Funktion ersetzt einen Teil der Zeichenfolge.

str_replace(search, replace, subject)

preg_replace(pattern, replacement, subject)

... und vieles mehr.

In Ihrem Fall können Sie nur so etwas tun:

$equation = 'sin(x)'; 
$equation = str_replace('(x)', '('.$yourValue.')', $equation); 

EDIT/HINWEIS: Ich ersetze nicht nur ‚x‘, sondern ‚(x)‘ für den Fall, oder Sie haben mehr von einem x in Ihrer Zeichenfolge und Sie möchten nur den Parameter Ihrer Funktion sin oder log usw. ersetzen. Verwenden Sie preg_replace, wenn Sie mehr Genauigkeit benötigen

+0

brilliant. Ich möchte eigentlich Benutzer ihren eigenen Wert setzen lassen. Ich werde es später versuchen. –

+0

Wenn Ihr Problem gelöst ist, akzeptieren Sie diese Antwort. :). Öffnen Sie ein anderes Thema, wenn Sie Hilfe benötigen, um den Wert vom Eingabebenutzer abzurufen – Xenofexs

Verwandte Themen