probleme mit array_diff

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

  • probleme mit array_diff

    hallo,
    folgendes problem:

    ich hab 2 arrays:

    1. array: $allincludes
    2. array: $allscripte

    in diesen arrays sind namen von php scripten.

    es geht erstma um folgenden wert: 'functions.inc.php'

    dieser wert befindet sich in beiden arrays.

    jetzt will ich aber alle scripte die nicht in $allincludes sind aber in $allscripte.

    $bla= array_diff($allescripte,$allincludes);

    nun ist aber der wert 'functions.inc.php' in $bla.

    wie kann das sein???

    danke schonmal
    mfg simon

  • #2
    var_dump auf deine Arrays anwenden und die Unterschiede per Hand mal durchgehen. Irgendwo hast du einen Fehler gemacht - array_diff arbeitet richtig.

    Kommentar


    • #3
      ich bin schon die werte mit strlen() durchgegangen .. .. sind von function.in.php in allen arrays gleich.

      Kommentar


      • #4
        Kann ich mir nicht vorstellen. Poste doch mal dein Quellcode..

        Kommentar


        • #5
          ok wird jetz ein wenig gross:
          PHP-Code:
          if((isset($tmp["extension"]))&&($tmp["extension"]=="php"))
               {
                       
                       
          $allescriptea[]=$allescripte//umwandlung in ein array     
                   
               
          }
           
           
          //sucht die includierten raus und speichert es in ein array
           
          preg_match_all('#include\s*?\(\s*?(\'|")(.*?)\1\s*?\)#'$einaller$treffervonwas); 
           foreach(
          $treffervonwas[sizeof($treffervonwas)-1] as $var)
              
              { 
                  global 
          $explodiertfinal;
                  
          $explodiert=explode("/"$var );
                  
          $allincludes[$path] = $explodiert[sizeof($explodiert)-1]; // hier sind alle includierten scripte
                  
          foreach ($allincludes as $bing)
                  {
                      
          $beb=strlen($bing);
                      echo 
          "||".$bing."allincludes"."<br>".$beb;
                  
          //var_dump($allincludes);
                  
          }
              }
          }

          $not_inc_but_on_space=array_diff($allescriptea$allincludes);

          foreach(
          $allescriptea as $fu)
          {
              
          $bib=strlen($fu);
              echo 
          "<br>".$fu."<--allescriptea".$bib;
          }
           
          foreach (
          $not_inc_but_on_space as $blaa)
          {
              
          $bab=strlen($blaa);
              echo 
          "<br>".$blaa."<--not includes but in space".$bab;

          die ausgabe is wirklich lang .... aber es ist DEFINITIV functions.inc.php in allen arrays vorhanden. strlen gibt 17 zurück.

          Kommentar


          • #6
            jetzt will ich aber alle scripte die nicht in $allincludes sind aber in $allscripte.

            $bla= array_diff($allescripte,$allincludes);
            Ich zitiere mal das Manual:
            Beschreibung
            array array_diff ( array array1, array array2 [, array ...] )

            array_diff() gibt ein Array mit allen Werten von array1, welche in keinem der anderen Argumente enthalten sind, zurück. Beachten Sie, dass Schlüssel erhalten bleiben.
            Beispiel 1. array_diff()
            PHP-Code:
            $array1 = array ("a" => "grün""rot""blau""rot");
            $array2 = array ("b" => "grün""gelb""rot");
            $result array_diff ($array1$array2); 
            Tipp: vertausch mal deine Parameter in array_diff.

            Kommentar


            • #7
              auch wenns mir keiner glaubt.... habe $allscripte und $allincludes getauscht und es ist das allerselbe...

              der wert ist in alle 3 arrays enthalten ....

              Kommentar


              • #8
                kann es vielleicht daran liegen das functions.inc.php in den arrays öfter vorkommt?

                Kommentar

                Lädt...
                X