Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] array_search funtioniert nicht

Einklappen

Neue Werbung 2019

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

  • [Erledigt] array_search funtioniert nicht

    Hallo,

    ich bin absoluter PHP Neuling und verstehe einfach nicht warum, ab einer bestimmten Stelle array_search nicht mehr meinen gewünschten Wert zurück gibt.


    PHP-Code:
    $datei file("datei.txt");
          
    $k=0;
                foreach(
    $datei AS $ausgabe){
                    
                    
    $zerlegung explode("|"$ausgabe);

                    
    $array[$k] = isset($zerlegung[0]) ? $zerlegung[0] : '';
                    
    $vergleich[$k] = isset($zerlegung[1]) ? $zerlegung[1] : '';

                    
    $k++;
                }

    if(!empty(
    $vergleich[$id]))
          echo 
    array_search($vergleich[$id],$array); 
    Ich verstehe jetzt nicht, warum es für id=0,1,2 funktioniert, aber darüber hinaus nicht mehr, obwohl ich weiß, dass es eine id geben muss!

    Wäre dankbar für einen Hinweis: WARUM?

  • #2
    Schau rein .. print_r($array);

    Was machst du da überhaupt?

    LG

    Kommentar


    • #3
      Naja theoretisch, ist meine Textdatein eine zwei spaltige Tabelle, aber soweit bin ich noch nicht gekomen, wie man mit sql eine erstellt, also muss es jetzt erst mal so herhalten.

      die linke Spalte ist mit Namen gefüllt, die teilweise in der rechten wieder vorkommen, aber nicht müssen, so dass mein $vergleich halt an einigen Stellen leer besetzt ist.

      mit print_r($array) erhalte ich:


      Array ( [0] => a
      [1] => b
      [2] => c
      [3] => d
      [4] => e
      [5] => f
      [6] => g
      [7] => h
      )

      mit print_r($vergleich):

      Array (
      [0] => b
      [1] => d
      [2] =>
      [3] => f
      [4] =>
      [5] => g
      [6] =>
      [7] =>
      )

      es steht halt genau das, was ich wollte, aber wenn ich es mit $id=3 versuche, gibt er mir false zurück!

      Kommentar


      • #4
        Habs immer noch nicht verstanden, was ist dein Endziel?

        Kommentar


        • #5
          Ich will einfach nur wissen, an welcher Stelle sich die Inhalte von $vergleich im eigentlichen $array befinden. Wenn jetzt aber zum Beispiel nach $vergleich[3] ( also " f " ) im $array suchen soll, gibt er mir keinen Wert zurück. Aber offensichtlich müsste doch der der Wert 5 ausgegeben werden. aber warum tut es das nicht???

          Grüße

          Kommentar


          • #6
            Was du willst versteh ich immer nocht nicht, aber egal. Jedenfalls... wenn du zB so ein Array hast ...

            PHP-Code:
            $arr = [
                
            => 'a',
                
            => 'b',
                
            => 'c',
                
            => 'd',
                
            => 'e',
                
            => 'f',
                
            => 'g',
                
            => 'h'
            ]; 
            ... dann kommst du so zu deinen Werten - wir suchen zB "d"

            PHP-Code:
            echo $key array_search('d'$arr); // 3
            echo $arr[$key]; // d 

            Kommentar


            • #7
              Hey,

              ja ich weiß, dass es so rein theoretisch funktioniert.

              bei
              PHP-Code:
              echo $vergleich[3]."<br>"
              echo 
              $array[5]."<br>";

              $id array_search($vergleich[3], $array);
              echo 
              "id = ".$id
              erhalte ich folgende Rückgabe:
              f
              f
              id =

              also warum gibt er mir jetzt nicht den Wert 5 zurück?

              Kommentar


              • #8
                versuch mal mit trim(), ev. sind da noch whitespaces enthalten.. Leerzeichen etc..

                Kommentar


                • #9
                  Oh Wahnsinn. Es hat funktioniert.

                  Ich danke dir!

                  Kommentar


                  • #10
                    bitte.

                    Kommentar

                    Lädt...
                    X