Seite 2 von 2

Re: 2 arrays vergleichen > werte löschen in neuem array

Verfasst: 06.09.2009 18:24
von 4seven
der var_dump ist def. original-ausgabe.

natürlich sind die wert1, wert2 andere werte.

aber das dürfte ja keine rolle spielen.

hier der original-code:

Code: Alles auswählen

$sql = 'SELECT post_text
from ' . POSTS_TABLE . '
WHERE post_text LIKE "%b@_bb@_%txt%" escape "@"';
$result = $db->sql_query($sql);

while ($row = $db->sql_fetchrow($result)) {

$posted_txt = $row['post_text'];

preg_match_all("#b_bb_(.*?).txt#", $posted_txt, $txt);
 
unset($txt[1]);

foreach ($txt[0] as $txt_1)
         {
$txt_1[]= $txt_1;
     }
}


$handle2 = opendir($phpbb_root_path . 'test/txt'); 
$txts2  = array();
while ($txt2 = readdir ($handle2)){ 
if ($txt2 != "." && $txt2 != ".." 
&& $txt2 != ".htaccess" && $txt2 != "index.htm"){
$txts2[] = $txt2;}}
closedir($handle2); 

sort(array_unique($txt_1));
sort(array_unique($txts2));

$result1 = array_diff($txts2, $txt_1);    

var_dump ausgabe


array1

Code: Alles auswählen

array(3) { [0]=> string(58) "b_bb_testbla1.txt" [1]=> string(52) "b_bb_testbla2.txt" [2]=> string(58) "b_bb_testbla_3.txt" }        
hinweis: setzt sich auch bei mehreren werten so fort: string(58) ... string(52) usw..

array2

Code: Alles auswählen

array(5) { [0]=> string(48) "b_bb_testbla1.txt" [1]=> string(54) "b_bb_testbla2.txt" [2]=> string(48) "b_bb_testbla3.txt" [3]=> string(54) "b_bb_testbla4.txt" [4]=> string(48) "b_bb_testbla5.txt" }         
hinweis: setzt sich auch bei mehreren werten so fort: string(48) ... string(54) usw..

differenz-ergebnis -> $array3 =array_diff($array2, $array1);

Code: Alles auswählen

array(5) { [0]=> string(48) "b_bb_testbla1.txt" [1]=> string(54) "b_bb_testbla2.txt" [2]=> string(48) "b_bb_testbla3.txt" [3]=> string(54) "b_bb_testbla4.txt" [4]=> string(48) "b_bb_testbla5.txt" }         

Re: 2 arrays vergleichen > werte löschen in neuem array

Verfasst: 06.09.2009 19:50
von djchrisnet
also bei mir hat das ergebniss weder eine länge von 48 noch 52. nämlich die länge 17 ( also string(17) )

was mich der tatsache näher bringt, dass der string uft-8 codiert ist näher bringt und die dateinamen im ftp verzeichnis wohl nicht

Re: 2 arrays vergleichen > werte löschen in neuem array

Verfasst: 07.09.2009 01:15
von 4seven
utf8_encode und decode gecheckt > gleiches resultat.

dann muss ich wohl doch meine durch-die-brust-ins-auge-lösung nehmen.

schade, dachte das wäre zu knacken :wink:

[RESOLVED] 2 arrays vergleichen > werte löschen in neuem arr

Verfasst: 07.09.2009 15:08
von 4seven
die kombination von

Code: Alles auswählen

array_unique($array);
array_map('trim', $array);
sort($array); 
und einer halben durch-die-brust-ins-auge-lösung brachte den gewünschten effekt.

danke nochmal für eure vorschläge..