PHP Array nach Werte durchsuchen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.

    Comment


    • #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?

      Comment


      • #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

        Comment


        • #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

          Comment

          Working...
          X