2 arrays vergleichen > werte löschen in neuem array

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

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

Beitrag 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" }         
Benutzeravatar
djchrisnet
Mitglied
Beiträge: 1275
Registriert: 29.06.2007 15:52
Wohnort: Elmshorn
Kontaktdaten:

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

Beitrag 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
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

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

Beitrag 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:
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

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

Beitrag 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..
Antworten

Zurück zu „Coding & Technik“