【问题标题】:array_diff return a string without an arrayarray_diff 返回一个没有数组的字符串
【发布时间】:2018-12-29 15:15:08
【问题描述】:

我正在尝试清理我的数据库

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波莉

但它会返回他们之间连接的所有用户

【问题讨论】:

  • 欢迎。请阅读有关如何提供 [mcse] 的帮助部分。另外请提供db.txt和db2.txt的测试。最后,您的标题建议在数据库上工作,但是,您的问题涉及使用数组;我建议你改写你的问题标题。

标签: php file newline array-difference file-put-contents


【解决方案1】:

你可以使用 implode 来添加换行符

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

【讨论】:

    【解决方案2】:

    你可以这样试试,

    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); 
    }
    

    【讨论】:

      猜你喜欢
      • 2015-05-14
      • 2012-01-22
      • 2011-06-24
      • 2017-10-09
      • 1970-01-01
      • 2011-04-21
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      相关资源
      最近更新 更多