Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Eintrag aus String herauslöschen (https://www.delphipraxis.net/114107-%5Bphp%5D-eintrag-aus-string-herausloeschen.html)

Yheeky 19. Mai 2008 21:37


[PHP] Eintrag aus String herauslöschen
 
Hi,

schon wieder eine PHP-Frage ;-)

Ich habe einen String, den ich mit Kommata abtrenne.

Code:
Max,Bernd,Tina,Mario
Ich möchte mir nun eine Funktion schreiben, der ich einen Text übergebe (z.B. delItem("Tina")) und der, den Eintrag aus dem String löscht.

Problem ist hier, dass die Kommata ja mitgelöscht werden müssen und ich nicht weiss, ob das Komma vor, hinter oder vor und hinter dem Namen steht.
Habe so meine Probleme mit den Funktionen str_replace und strpos.

Wäre super, wenn mir jemand helfen könnte.

Danke schonmal!

Dax 19. Mai 2008 21:41

Re: [PHP] Eintrag aus String herauslöschen
 
Wir wäre es, den Namen zu löschen und danach alle Doppelkommas durch Einfachkommas zu ersetzen?

mkinzler 19. Mai 2008 21:42

Re: [PHP] Eintrag aus String herauslöschen
 
Am Besten String mit Explode() in einen Array wandeln, Array um Eintrag bereinigen, mit Implode() zurück in String wandeln

Die Muhkuh 19. Mai 2008 21:44

Re: [PHP] Eintrag aus String herauslöschen
 
Oder sowas:

Code:
function delItem($source, $item) {
  if (!substr($source, -1) != ',') {
    $source .= ',';

  return str_replace($item . ',', '', $source);
}

mkinzler 19. Mai 2008 21:44

Re: [PHP] Eintrag aus String herauslöschen
 
Das ist natürlich noch besser

Die Muhkuh 19. Mai 2008 21:47

Re: [PHP] Eintrag aus String herauslöschen
 
Zitat:

Zitat von mkinzler
Das ist natürlich noch besser

Muss nicht unbedingt sein. Der Aufbau seines Strings riecht auch danach, dass man es mir einem Array machen könnte. Da wäre unset das Stichwort zum Entfernen.

Yheeky 19. Mai 2008 22:47

Re: [PHP] Eintrag aus String herauslöschen
 
Super! Danke für die Tipps! Explode und Implode waren die perfekten Stichworte. So habe ich es nun gelöst:

Code:
function deleteItem($text, $item)
{
   // Erstelle ein Array anhand dem Trennzeichen "," und dem Text $text
   $array = explode (',', $text);
   
   // Sucht $item im Array
   for ( $x = 0; $x < count ( $array ); $x++ )
   {
      // Wenn item gefunden wurde, dann ihn mit "unset" aus dem Array löschen
      if ($array[$x] == $item)
      unset($array[$x]);
   }
   
   // Den String mit dem Trennzeichen "," erstellen und zurückgeben
   return implode (',', $array);
}
Danke nochmal und gute Nacht! :-D

Die Muhkuh 19. Mai 2008 22:48

Re: [PHP] Eintrag aus String herauslöschen
 
Kannst Du die Sachen nicht gleich als Array behandeln?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz