2017-01-20 2 views
-2

Können Sie mir bitte sagen, wie kann ich die INTS von einer Zeichenfolge erkennen, dann ersetzen Sie jedes int mit einem Wert? Zum Beispiel habe ich diese "1; 5; 81; 2" in der Datenbank, und ich möchte jede Zahl durch einen bestimmten Wert ersetzen, zum Beispiel möchte ich als Ergebnis erhalten "obzq" Gibt es eine Möglichkeit zu tun Dies? DankePHP erkennen und ersetzen

+1

Mit 'strtr'-Funktion –

+0

Versucht fast alles, das Problem ist die Anzahl der Ints ist nicht genau, und es hat keine Definition Muster .. sehen? –

Antwort

0

Erstellen Sie ein Array mit Schlüssel-Wert-Paaren, wobei der Schlüssel die Nummer ist und der Wert der entsprechende Buchstabe ist. Dann verwenden Sie die PHP-Funktion explode() auf Ihre Zeichenfolge mit den Zahlen und durchlaufen Sie das Array durch Ersetzen der Zahlen mit dem entsprechenden Buchstaben.

Beispiel:

$numberLetterArray = array(
    1 => 'o', 
    2 => 'q', 
    5 => 'b', 
    81 => 'z', 
); 

$string = '1;5;81;2'; 

// Creates an array of only the numbers 
$numbers = explode(';', $string); 

foreach($numbers as $n) 
{ 
    foreach($numberLetterArray as $number=>$letter) 
    { 
     if($number == $n) 
     { 
      $output .= $letter.' '; 
     } 
    } 
} 

// Remove the space at the end 
$output = trim($output); 

Das sollte Ausgang "o b z q".

+0

Ich habe das versucht, aber das Problem ist, dass es nicht immer 1 2 5 81 und o q b z –

+0

Wo beziehen Sie sich auf die Beziehung zwischen den Buchstaben und Zahlen? – VenomRush

+0

Zahlen sind IDs, und Buchstaben sind die Benutzernamen entsprechend jeder ID –