我想将数据库中的所有单词放入默认数组。我的数据库里有超过 50,000 个单词,这个数字很可能达到一百万。因此,我希望这个手术不需要花费太多时间。我尝试了这样的方法,其中不将任何单词放入通常的数组中。也就是说,单词被传递到关联数组:
$words = DB::table('words')->pluck('word');
dump($words);
Result:
Collection {#197 ▼
#items: array:12 [▼
0 => "тоҷик"
1 => "ӯзбек"
2 => "қирғиз"
3 => "эрон"
4 => "япон"
5 => "англис"
6 => "тоҷик"
7 => "ӯзбек"
8 => "қирғиз"
9 => "эрон"
10 => "япон"
11 => "англис"
]
}
第二种方法:
$words = DB::select("SELECT `word` FROM `words`");
dump($words);
Result:
array:12 [▼
0 => {#210 ▼
+"word": "тоҷик"
}
1 => {#207 ▼
+"word": "ӯзбек"
}
2 => {#209 ▼
+"word": "қирғиз"
}
3 => {#206 ▼
+"word": "эрон"
}
4 => {#208 ▼
+"word": "япон"
}
5 => {#205 ▼
+"word": "англис"
}
6 => {#204 ▼
+"word": "тоҷик"
}
7 => {#203 ▼
+"word": "ӯзбек"
}
8 => {#202 ▼
+"word": "қирғиз"
}
9 => {#200 ▼
+"word": "эрон"
}
10 => {#213 ▼
+"word": "япон"
}
11 => {#214 ▼
+"word": "англис"
}
]
我想将这种形式的所有单词放入通常的数组中:
array:12 [▼
0 => "тоҷик"
1 => "ӯзбек"
2 => "қирғиз"
3 => "эрон"
4 => "япон"
5 => "англис"
6 => "тоҷик"
7 => "ӯзбек"
8 => "қирғиз"
9 => "эрон"
10 => "япон"
11 => "англис"
]
我需要这个来获取两个数组之间的差异。输入数组是一个乐观数组,因此我需要从低音中取出所有单词以添加到丰富的数组中。一般来说,有没有类似的功能array_diff()
在 Laravel 框架本身?
$diff = array_diff($input_array, $words_from_db);
并将差异添加到数据库中:
foreach ($diff as $value) {
DB::table('words')->insert(['word'=>$value]);
}
我向数据库添加大量单词(数据)的方法正确性如何?如果可能的话我是否需要优化?
一般来说,我从 Laravel 找到了这个函数:
public function diff($items)
{
return new static(array_diff($this->items, $this->getArrayableItems($items)));
}
但我如何使用它来获取 diff 2 数组呢?输入数组将是来自数据库的默认数组和第二个数组字
预先感谢大家的回答,并请原谅我对问题中的语法错误表示歉意。