Letzte Stelle bei Anzeige entfernen wenn numerisch

FreddyS

Grünschnabel
Hallo guten Abend,

wie kann ich mit php die letzte Stelle eines Ordnungsbbegriffes (gespeichert in DB) bei der Anzeige entfernen, wenn dieser numerisch ist.

Also statt Hugo1, Hugo2 usw. soll nur Hugo angezeigt werden

Hoffe jemand kann mir helfen, danke schon jetzt
 
Hi,

letzte Zeichen mit z.B. substr($Varname, -1) herausfiltern, danach testen ob es numerisch ist und wenn ja abschneiden
 
Hallo vielen Dank, habe das jetzt so gelöst:

$Varname="Hugo2A2 ";

for ($i=1; $i<9; $i++)
{
if (substr($Varname, -$i, 1) == " " )
{
//Leerstellen nach namensende ignorieren
echo'Blank nach Namensende';
}
else
{
if(is_numeric(substr($Varname, -$i, 1)))
{
$lst=substr($Varname, -$i, 1);
echo'Letzte Stelle: ' . $lst;
$Varname(substr, -$i, 1) = " ";
break;
}
else
{
echo'Letzte Stelle weder blank noch numerisch';
break; //Letzte Stelle nicht blank und nicht numerisch
}
}
}
echo'<br><br>';
echo'Name: ' . $Varname;

Aber wie kann ich die gefundene letzte numerische stelle durch blank ersetzen (andere evtl. vorhandene gleiche numerische werte dürfen nicht verändert werden.

Habe es so probiert:

$Varname(substr, -$i, 1) = " ";

Aber das funktioniert nicht
$Varname(substr, -$i, 1) = " ";
 
Verstehe noch nicht so ganz was du genau machen willst.

Soll jetzt ein am Ende stehendes Leerzeichen so bleiben wie es ist und nur die (vom Ende ausgehend) erste Zahl ebenfalls in ein Leerzeichen (ich nehm dafür mal "_") umgewandelt werden.

"Hugo2A2_" = "Hugo2A__"
 
hallo, danke zuerst.

Ja, der letzte numerische wert soll durch blank ersetzt werden.

Aber ich brauche eine lösung, die das variabel bewerkstelligt (in der datenbank sind diverse namen gespeichert, mit unterschiedlichen längen, mit und ohne numerischen wert am ende, also z. B, Hugo, Hugo2A2, Friedolin1 usw.)

$Varname = "Hugo2A2 " war nur ein Beispiel zum Testen
 
Dann versuche mal ob du damit zum gewünschten Ziel kommst.

PHP:
<?php

$Varname = "Hugo2A2 ";
$i = strlen($Varname);

while ($i > 0) {

  	if (!is_numeric(trim(substr($Varname, $i, 1)))) break;
  	if (is_numeric(substr($Varname, $i, 1))) {
		$Varname = substr_replace($Varname," ", $i, 1);
		break;
  	}
  	$i--;

}

echo '<br><br>';
echo 'Name: ' . $Varname;

?>
 
Zuletzt bearbeitet:
Wie wärs mit:
PHP:
$Varname = "Hugo2A2 ";
$Varname = preg_replace("/\d( *)$/", " $1", $Varname);
echo 'Name: ' . $Varname
Habs leider nicht getestet, aber ich denke das sollte gehen.
 

Neue Beiträge

Zurück