in_array: needle = array ??

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

  • in_array: needle = array ??

    Hallo,

    da ich mit php version < 4.2 arbeite funktioniert folgendes nicht:

    $code = array(1,4,5,6,8,9,12);
    $false_pic = array(6,7,8,9,10);

    if(in_array($false_pic, $code)){
    echo "Mit dem Bild stimmt was nicht";
    }

    Fehlermeldung:

    Warning: Wrong datatype for first argument in call to in_array in /var/www/...

    Hat da jmd n workaround für?

  • #2
    in_array prüft ob ein wert in einem array existiert, nicht ob ein array auf ein anderes projezierbar ist, bzw ob alle werte in einem array auch in dem anderen sind. ich glaube dafür gibts keine funktion, könnte aber in etwa so aussehen (ungetestet)
    PHP-Code:
    function arrayinarray($checkArray$bigArray)
    {
        foreach(
    $checkArray as $element)
            if(!
    in_array(element$bigArray))
                return 
    false;
        return 
    true;

    Kommentar


    • #3
      http://www.php.net/array-intersect

      hth
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        bei in_array() suchst du nur, ob ein string in einem array vorhanden ist.

        was du aber versuchst, ist, dass du ein array im array suchst.

        lasse doch das eine array durch eine schleife laufen. dann kannst du mit in_array() dies gegen das andere array prüfen.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          array_intersect geht auch, ist aber resourcen verschwendung, müßte dann so aussehen:

          PHP-Code:
          if(count(array_intersect($code$false_pic)) != count($false_pic))
          {
              
          //Mit dem Bild stimmt was nicht

          Kommentar


          • #6
            warum != count($false_pic) ?

            es reicht doch, wenn die schnittmenge mindestens 1 element enthält
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              ich glaube er meint, nur wenn alle elemente aus array1 in array2 sind ist es gültig, alledings läst die angabe auch einiges offen

              Kommentar


              • #8
                Original geschrieben von xJoni
                ich glaube er meint, nur wenn alle elemente aus array1 in array2 sind ist es gültig, alledings läst die angabe auch einiges offen
                Ich möchte damit feststellen, ob einer der zahlen ($false_pic = array(6,7,8,9,10)) sich im $code - array befindet...

                Ab php version 4.2 kann man als needle ein array verwenden...

                Kommentar

                Lädt...
                X