Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Rest des Strings aus Array-Elementen entfernen nach bestimmten Wort

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Rest des Strings aus Array-Elementen entfernen nach bestimmten Wort

    PHP-Code:
    $pos strrpos($array2[1][$i],"<u>blubblubblub</u>");

    for (
    $i 0$i count($array2[1]); $i++) 
              { 
              if(
    $pos == true)
                {
                    
    $weg substr($array[1][$i],$pos+18);
                    
    $array3[1][$i] = str_replace($weg,"",$array2[1][$i]);
                }
              } 
    Wie in der Überschrift gesagt versuch ich nach einen Codewort den Rest des Arrays zu entfernen aber irgendwie wird das nix. Weiß jemand wo mein Fehler liegt?
    Danke im vorraus


  • #2
    Ich verstehe nicht ganz was du versuchst - aber ich glaube sowas in der Art oder:
    PHP-Code:
    <?php

    $testString 
    'Hallo das ist ein Test! Hier werde ich abgeschnitten!';
    var_dump($testString);

    $stringModified substr($testString0strpos($testString'Hier'));
    var_dump($stringModified);
    Die Ausgabe von "$stringModified" lautet: "Hallo das ist ein Test!" - solltest du das "Hier" noch mitnehmen wollen musst du nach dem "strpos" noch "+4" anfügen.
    Gruß,
    SebTM

    Kommentar


    • #3
      Ich vermute ebenfalls, daß Du das suchst, was SebTM beschreibt.
      Allerdings kannst Du das noch auf das gesamte Array anpassen:
      PHP-Code:
      $sTrimText '<u>blubblubblub</u>';

      $aArrayModified array_map(
              function( 
      $sValue ) use ( &$sTrimText ) {
                  return 
      substr$sValue0strpos($sValue$sTrimText) );
              }
              , 
      $aArraySource // <-- Dein Array, welches modifiziert werden soll
          
      ); 
      $aArrayModified enthält dann alle angepassten Werte...
      Competence-Center -> Enjoy the Informatrix
      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

      Kommentar


      • #4
        Liefer mal ein reproduzierbares Beispiel, welches dein Problem verdeutlicht.
        Hier kann niemand wissen, was bei dir in array2, array usw. drin steckt.
        PHP-Klassen auf github

        Kommentar


        • #5
          Erstmal danke für die Hilfe und Lösungsansätze hab nen bissle rum probiert aber hat nix funktioniert

          hab nen anderes Array erstellt und das funktioniert

          PHP-Code:
          $aPlan = array(
                      
          => "sehrsehrlangesWortundhiersollallesweg",
                      
          => "sehrsehrlangesWortundhiersollallesweg",
                      
          => "sehrsehrlangesWortundhiersollallesweg",
                      
          => "sehrsehrlangesWortundhiersollallesweg",
                      
          => "sehrsehrlangesWortundhiersollallesweg",
                      
          => "sehrsehrlangesWortundhiersollallesweg",
                      );
                      
          $sTrimText 'hier';

          $aPlanM array_map(function( $sValue ) use ( &$sTrimText 
                      {
                          return 
          substr$sValue0strpos($sValue$sTrimText)); 
                      }
                          , 
          $aPlan);  

              
          var_dump($aPlanM); 
          rauskommt

          PHP-Code:
          array(6) { [0]=> string(0"sehrsehrlangesWortund" [1]=> string(0"sehrsehrlangesWortund" [2]=> string(0"sehrsehrlangesWortund" [3]=> string(0"sehrsehrlangesWortund" [4]=> string(0"sehrsehrlangesWortund" [5]=> string(0"sehrsehrlangesWortund" 
          wenn ich mein eigentliches benutze kommt immer
          PHP-Code:
          Warningstrpos() expects parameter 1 to be string, array given in  on line 27 
          Warning
          substr() expects parameter 1 to be string, array given in  on line 27 Warningstrpos() expects parameter 1 to be string, array given in  on line 27 Warningsubstr() expects parameter 1 to be string, array given in  on line 27 
          Das entspricht
          PHP-Code:
          return substr$sValue0strpos($sValue
          Das Problem liegt anscheinend an der Variable ... keine Ahnung warum der mein eines array nimmt aber mein anderes nicht :/ Kannes es daran liegen das das Wort nachdem ich filter nicht in jedem Arraywert enthalten ist?

          LG Sven

          Kommentar


          • #6
            Was ist den an der Fehlermeldung so unverständlich? Der übergebene Wert ist ein Array und kein String. Die Sturktur der Daten ist also anderes wie in deinem test Script.

            Kommentar


            • #7
              Du verwendest im Eingangsthread nicht $array2, sondern $array2[1]. Da wird Dein Fehler sein!
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

              Kommentar


              • #8
                Ich habs

                PHP-Code:
                $aPlan = array(
                            
                => '' $aPlan[1][0] . '',
                            
                => '' $aPlan[1][1] . '',
                            
                => '' $aPlan[1][2] . '',
                            
                => '' $aPlan[1][3] . '',
                            
                => '' $aPlan[1][4] . '',
                            
                => '' $aPlan[1][5] . '',
                            );

                var_dump($aPlan);
                            
                echo (
                "<br />_______________________________________________________________<br /><br />");
                            
                $sTrimText '<u>ddfgdfgdfgdfg</u>';

                $aPlanM array_map(function( $sValue ) use ( &$sTrimText 
                            {
                                
                                if(
                strpos($sValue$sTrimText))
                                {
                                    return 
                substr$sValue0strpos($sValue$sTrimText)); 
                                }
                                else
                                {
                                    return 
                substr$sValue0); 
                                }
                            }
                                , 
                $aPlan);  

                    
                for (
                $i 0$i count($aPlanM); $i++) 
                          { 
                            print 
                $aPlanM[$i] . "<br>"
                            
                          } 
                Es lag irgendwie am Array und musste noch ein bissl an der Callbackfunktion feilen aber jetzt funktioniert es

                Kommentar


                • #9
                  PHP-Code:
                  $aPlan = array(
                              
                  => '' $aPlan[1][0] . '',
                              
                  => '' $aPlan[1][1] . '',
                              
                  => '' $aPlan[1][2] . '',
                              
                  => '' $aPlan[1][3] . '',
                              
                  => '' $aPlan[1][4] . '',
                              
                  => '' $aPlan[1][5] . '',
                              ); 
                  dürfte nicht nur sinnfrei, sondern auch quasi dasselbe sein, wie
                  PHP-Code:
                  $aPlan = array(
                              
                  $aPlan[1][0],
                              
                  $aPlan[1][1],
                              
                  $aPlan[1][2],
                              
                  $aPlan[1][3],
                              
                  $aPlan[1][4],
                              
                  $aPlan[1][5]
                              ); 
                  ...was wiederum dasselbe ist wie
                  PHP-Code:
                  $aPlan $aPlan[1
                  ...und dann zu dem bereits erwähnten Punkt führt, warum Du nicht gleich $aPlan[1] verwendest:
                  PHP-Code:
                  $aPlanM array_map(
                          function( 
                  $sValue ) use ( &$sTrimText ) {
                                  
                                  
                  // dein IF-Teil benötigst Du hier nicht,
                                  // was nicht da ist, wird auch nicht entfernt...
                                  
                  return substr$sValue0strpos($sValue$sTrimText)); 
                          }
                          , 
                  $aPlan[1// <-- hier wäre die einzige Anpassung nötig gewesen!
                      
                  ); 
                  Anstatt mit for und count zu hantieren kannst Du auch foreach verwenden oder um auf Dein Beispiel einzugehen gleich implodieren:
                  PHP-Code:
                  echo implode'<br />'$aPlanM ); 
                  Weitere Möglichkeiten und Lernhilfen findest Du hier...
                  Competence-Center -> Enjoy the Informatrix
                  PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                  Kommentar


                  • #10
                    Zitat von Arne Drews Beitrag anzeigen
                    dürfte nicht nur sinnfrei, sondern auch quasi dasselbe sein, wie
                    Ist nicht genau dasselbe, hab deshalb das quasi mal hervorgehoben. Durch ein Ausdruck wie $var = "".$var wird $var zum String.
                    Je nachdem was vorher in $var stand kann das Resultat auch Überraschungen bringen:
                    PHP-Code:
                    $var = array(1,2,3);
                    $var ''.$var;
                    var_dump($var);  //string(5) "Array" 
                    PHP-Klassen auf github

                    Kommentar


                    • #11
                      Durch ein Ausdruck wie $var = "".$var wird $var zum String.
                      Ok, das stimmt. Ich bin davon ausgegangen, daß es sich generell um Strings handelt.
                      Denn jagt man das eben einmal durch strval(), ist allemal sinnvoller, als die verwendete Variante...
                      PHP-Code:
                      $aPlanStrings array_map'strval'$aPlan[1] ); 
                      Competence-Center -> Enjoy the Informatrix
                      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                      Kommentar

                      Lädt...
                      X