array_diff возвращает строку без массива

Я пытаюсь почистить свою БД

if($var == true){
$db = file('db.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
shuffle($db);
$db2 = file('db2.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$cleaner = array_unique ($db);
$final = array_diff ($cleaner, $db2);
file_put_contents('db3.txt', $final);
}

он должен поместить в db3.txt всех пользователей с новой строкой, такой как:

Майк \ nRobert \ nJhon \ nPolly

но он возвращает всех пользователей, прикрепленных между ними

-2

Решение

Вы можете использовать Implode для добавления новой строки

$comma_separated = implode("\n", $final);
0

Другие решения

Вы можете попробовать так,

if($var == true){
$db = file('db.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
shuffle($db);
$db2 = file('db2.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$cleaner = array_unique ($db);
$final = array_diff ($cleaner, $db2);
$final = implode(PHP_EOL, $final_result); // implode it with PHP_EOL
// put content to file with FILE_APPEND parameter but you can ignore if you wish
file_put_contents('db3.txt', $final, FILE_APPEND);
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector