Anno: explode() mit 2 seperatoren

Hey Guys,

Ich möchte einen String zB
"ABC DEF-GHI"
in ein Array laden, getrennt von " " und "-"
also:
[0] = ABC
[1] = DEF
[2] = GHI

gibt es eine Möglichkeit der Funk. explode() mehrere Seperatoren zu übergeben oder gibt es eine Alternative?

Anno

  1. Moin!

    gibt es eine Möglichkeit der Funk. explode() mehrere Seperatoren zu übergeben oder gibt es eine Alternative?

    Ja, klar. Du Ersetzt den String:

      
    $arListe=explode('-',str_replace(' ','-',$strText));  
    
    

    Falls Du das erweitern willst:

      
    $arSuche=array(' ', ',', '.', '#');  
    foreach ($strSuche as $dummy) {  
      $arErsatz[]='-';  
    }  
    $arListe=explode('-',str_replace($arSuche,$arErsatz,$strText));  
    
    

    Und falls Du das öfters brauchst:

      
    function MultiExplode($str,$ar) {  
    /**  
      
    * @param string  $str  zu splittendender Text  
    * @param  array  $ar   Liste der Trenner  
    * @return array  Ergebnis des Splittings  
    * @example $array=MultiExplode('123 456-789',array(' ', '-'));  
    * @author fastix®  
    */  
      $arErsatz=array();  
      foreach ($ar as $dummy) {  
        $arErsatz[]=$ar[0];  
      }  
      return explode('-',str_replace($ar,$arErsatz,$str));  
    }  
    
    

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
    1. Moin!

        
      function MultiExplode($str,$ar) {  
      /**  
      * @param string  $str  zu splittendender Text  
      * @param  array  $ar   Liste der Trenner  
      * @return array  Ergebnis des Splittings  
      * @example $array=MultiExplode('123 456-789',array(' ', '-'));  
      * @author fastix®  
      */  
        
        $arErsatz=array();  
        foreach ($ar as $dummy) {  
         $arErsatz[]=$ar[0];  
        }  
      /* return explode('-',str_replace($ar,$arErsatz,$str));  war falsch... */  
        return explode($ar[0],str_replace($ar,$arErsatz,$str));  
      }  
      
      

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix®

      --
      Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
      1. net schlecht!

  2. Huhu

    gibt es eine Möglichkeit der Funk. explode() mehrere Seperatoren zu übergeben oder gibt es eine Alternative?

    Guck Dir mal preg_split() an.

    http://php.net/manual/en/function.preg-split.php

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday