PHP 追加重复值

PHP append duplicate value

我正在尝试在文件
中追加数据 我有一个数组结果包含这个值:

Array ( [0] => Array ( [name] => Fanny [asset] => 1034 ) ) Array ( [0] => Array ( [name] => Gabriel [asset] => 1089 ) ) Array ( [0] => Array ( [name] => Martin [asset_no] => 1520> ) ) 

我使用 foreach 获取值,然后将它们插入到文件中:

foreach ($result as $value){
  $name = $value['name'];
  $asset = $value['asset'];
  $dir = "C:/Users/<users>/data";
  if (!is_dir($dir)) {
    mkdir($dir,0777);
  }
file_put_contents("$dir/data", "$name , $data \r", FILE_APPEND);

我的数据文件中的数据是:

Fanny, 1034
Gabriel, 1089
Martin, 1520

当我重新运行我的文件时,它复制了存储我的数据的文件中的值:

Fanny, 1034
Gabriel, 1089
Martin, 1520
Fanny, 1034
Gabriel, 1089
Martin, 1520

我想防止现有值重复
谁能告诉我错误在哪里。感谢您的帮助!

您需要删除 FILE_APPEND 参数,因为它会将数据附加到文件末尾,因为您一次又一次地 re-inserting 所有数据,您不需要旧数据,因此您可以删除因此 file_put_contents 将删除旧文件数据并存储新数据

如果您需要比较存储在文件中的旧数据和数组中的新数据,我建议您先从文件中读取数据,将其转换为数组(可能 json_decode)并创建一个循环函数通过 2 个数组并附加不存在的值

为了解决我的问题,我使用了一个数组和数据并比较了我想添加的数据和我想插入的数据:

$file = file_get_contents("$dir/data");
$data = explode("\r",$file);
foreach ($result as $value) {
  $name = $value['name'];
  $asset = $value['asset'];
  $message = "$name, $asset";
  if (in_array($message, $data)){
     echo "$message already exist ";
  } else {
     file_put_contents("$dir/data", "$message\r", FILE_APPEND);
  }
}