PHP Array nach Werte durchsuchen

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

  • PHP Array nach Werte durchsuchen

    Hallo Zusammen,
    Ich probiere seit gestern Abend ein PHP Array nach einem Wert durchsuchen, leider scheitert aber das ganze.

    Mein Array (worte2) sieht so aus:

    Array
    (
    [0] => 25.75
    [1] => 25.74
    [2] => 25.76temp
    [3] => 25.76temp
    [4] => 25.74temp
    [5] => 25.74temp
    [6] => 25.70temp
    [7] => 25.70temp
    [8] => 25.72temp
    ....
    )

    Jetzt möchte ich gerne das Array nach "wert"durchsuchen. Ich probiere das ganze so:

    PHP-Code:
    if (in_array(" temp"$worte2))
      {
      echo 
    "Match found";
      } 
    Wenn ich ein Array einzel den wert temp zuweise, wird es gefunden aber so nicht? Kann mir da jemand weiterhelfen? Bin noch ein blutiger Anfänger

    Vielen Dank

    Grüsse elt0n

  • #2
    Bitte ein vollständiges Beispiel posten, bei dem das Problem nachvollziehbar auftritt.

    Kommentar


    • #3
      Das Array sieht so aus:
      PHP-Code:
      Array
      (
      [
      0] => 25.75
      [1] => 25.74
      [2] => 25.76temp
      [3] => 25.76temp
      [4] => 25.74temp
      [5] => 25.74temp
      [6] => 25.70temp
      [7] => 25.70temp
      [8] => 25.72temp
      ....

      Wenn ich jetzt mit diesem Code es untersuche findet es kein temp.

      PHP-Code:
      if (in_array(" temp"$worte2))
        {
        echo 
      "Match found";
        }
      else
        {
        echo 
      "Match not found";
        } 
      Wenn ich aber ein Array auf den Wert temp ändere:

      PHP-Code:
      Array
      (
      [
      0] => temp

      Gibt mir meine If bedienung Match found aus. Wie muss ich vorgehen damit das Wort auch gefunden wird, wenn der Wert "temp" mit einer Zahl im Array steht?

      Kommentar


      • #4
        Hi,
        es gibt verschiedene Möglichkeiten eine solche Abfrage umzusetzen.

        Meine zwei fav. Ansätze wären

        PHP-Code:
        $haystack = [
            
        25.75,
            
        25.74,
            
        '25.76temp',
            
        '25.76temp',
            
        '25.74temp',
            
        '25.74temp',
            
        '25.70temp',
            
        '25.70temp',
            
        '25.72'
        ];
        $needle 'temp'
        Variante 1:
        PHP-Code:
        $matches array_filter($haystack, static function($var){global $needle;return (bool)preg_match("/$needle/i",$var);});
        echo 
        "<pre>".print_r($matchestrue)."</pre>"
        Variante 2:
        PHP-Code:
        $matches2 = [];
        foreach(
        $haystack as $k=>$v) {
            if(
        stripos($v,$needle)) {
                
        $matches2[$k] = $v;
            }
        }
        echo 
        "<pre>".print_r($matches2true)."</pre>"
        Aber die Jungs hier im Forum haben mit Sicherheit noch bessere Lösungen

        VG
        Runak

        Kommentar


        • #5
          @Runak Vielen lieben Dank. mit der Variante 2 klappt es hervorragend. Jetzt muss ich die Arrays noch mit dem wert temp bereinigen, mal schauen ob ich es hinkriege ansonsten mache ich einen neuen Thread auf.

          Grüsse elt0n

          Kommentar

          Lädt...
          X