Php array_diff返回不带数组的字符串
我正在清理我的数据库Php array_diff返回不带数组的字符串,php,file,newline,array-difference,file-put-contents,Php,File,Newline,Array Difference,File Put Contents,我正在清理我的数据库 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_d
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中输入所有用户的换行符,如:
迈克\n罗伯特\n霍恩\n波利
但是它会返回它们之间连接的所有用户您可以使用内爆添加换行符
$comma_separated = implode("\n", $final);
你可以这样试试
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);
}
欢迎请阅读有关如何提供[mcse]的帮助部分。另外,请提供db.txt和db2.txt的测试。最后,您的标题建议使用数据库,但是,您的问题涉及使用数组;我建议你改写你的问题标题。