PHP 骗子。如何创建N个唯一单词?

Joh*_*ith 2 php faker

我需要创建 N 个唯一的单词。似乎“词”不适用于“独特”。

\Faker\Factory::create()->unique()->words(14);
Run Code Online (Sandbox Code Playgroud)

...unique()->word() 正在工作。我正在尝试创建 250 个这样的独特单词:

for ($i = 1; $i <= 250; $i++) {
    $iadefaults[] = $faker->unique()->word();
}
Run Code Online (Sandbox Code Playgroud)

但我明白了

Maximum retries of 10000 reached without finding a unique value
Run Code Online (Sandbox Code Playgroud)

如何使用 faker 创建这 250 个独特的单词?

Sta*_*hyn 7

看起来我找到了解决您问题的方法

转到 Faker 的来源,你会在那里找到一个Provider/Lorem.php文件

在它的最顶部有一个 protected static $wordList属性,其中包含一个数组,用于定义 generator 返回哪些单词。如果你这样做count(array_count_values($wordList));- 你会看到 182 个独特单词的神奇数字 :) 难怪它无法根据该列表获得更多独特的值。

因此,您只需要在该数组中放入更多独特的单词,就可以解决问题!

  • 但一定有作者字数有限的原因。和性能有关吗?此外,如果我要进行```composer update```,那么所有更改都将丢失。 (2认同)