我有 2 数组。第一个数组包含正确的单词变体,第二个数组包含不正确的单词变体。我希望写它们通过组合成一个数组,将错误的单词传递给键和正确版本的单词的值。然后将它们写入文件并使用它。我将数组的内容保存在一个文件中,但是对同一个文件有一条新记录,所有数据都清除,只重新写入新条目并删除旧条目自动即可。我想在将新数据写入数组之前,检查重复,如果这样的 未写入在带有数组的文件中,然后将其写入文件而不清除文件的先前数据。一般来说,这将选择文件或数据库来存储超过十亿字。数据库是否具有最佳速度或文件?
示例第一个数组:
$uncorrect = array
(
0 => "мувосокори",
1 => "мунаггас",
2 => "мангит",
3 => "мангития",
4 => "мунфачир",
5 => "мунфачира",
6 => "манфиатпарасти",
7 => "манфиатчу",
8 => "манфиатчуи",
9 => "манфиатхох",
10 => "манфи",
.....................
);
示例第二个数组:
$correct = array
(
0 => "мувосокорӣ",
1 => "мунағғас",
2 => "манғит",
3 => "манғития",
4 => "мунфаҷир",
5 => "мунфаҷира",
6 => "манфиатпарастӣ",
7 => "манфиатҷӯ",
8 => "манфиатҷӯӣ",
9 => "манфиатхоҳ",
10 => "манфӣ",
.....................
);
我将两个数组与此代码组合在一起:
$dict = array_combine($uncorrect, $correct);
示例结果我的数组包含数据:
$dict = array (
"мувосокори" => "мувосокорӣ",
"мунаггас" => "мунағғас",
"мангит" => "манғит",
"мангития" => "манғития",
"мунфачир" => "мунфаҷир",
"мунфачира" => "мунфаҷира",
"манфиатпарасти" => "манфиатпарастӣ",
"манфиатчу" => "манфиатҷӯ",
"манфиатчуи" => "манфиатҷӯӣ",
"манфиатхох" => "манфиатхоҳ",
"манфи" => "манфӣ",
"минкор" => "минқор",
.....................................
);
我正在使用以下代码写一个文件:
file_put_contents("data.json", json_encode($dict));
我将使用此代码获取数组:
$array = json_decode(file_get_contents("data.json"));
答案 0 :(得分:2)
每当您想要添加新项目时,只需先加载文件,然后在再次保存之前合并新项目。 file_put_contents将覆盖那里的任何内容,因此您需要在运行该函数之前获取该数据。像这样:
$array = json_decode(file_get_contents("data.json"));
$newArray = array(
array( "rightWord" => "wrongWord")
);
$finalArray = array_merge($newArray, $array);
file_put_contents("data.json", json_encode($finalArray));
答案 1 :(得分:2)
最好使用数据库完成此任务。
如果您决定保留文件存储,要解决您的问题,您丢失旧条目的原因是您在添加新值之前忘记加载它们。
// more or less something like below
$array = json_decode(file_get_contents("data.json"));
$dict = array_combine($incorrect, $correct);
$newArray = array_merge($array, $dict);
file_put_contents("data.json", json_encode($newArray));
这对于数十亿或多行来说效率不高,特别是如果每次用户加载页面时都会加载它。