Laravel & Faker 没有给出数组的随机元素
Laravel & Faker gives not a random element of array
我对 Laravel 和 Faker 有意见。我想用 faker 的 randomElement 函数从数组中选择一个随机元素。我有这个简单的代码:
$siloID = DB::table('silos')->pluck('id');
echo(print("silos: ".$siloID));
echo(print("\nrandom element: ".$faker->randomElement($siloID)));
这是在控制台上返回给我的:
筒仓:[3,9,14,18,21,93,42,55,88,99,31,38,65,1,23,68,98,13,39,40,45, 49,59,6,11,24,25,60,64,90,94,97,100,4,15,7,26,29,85,35,43,75,22,48,58,80,86, 87,62,82,89,30,95,12,28,33,73,17,27,57,72,74,83,91,69,78,37,76,81,20,53,79, 32,46,56,77,92,34,41,44,67,16,19,52,61,96,5,10
,47,51,54,84,2,36,66,71,50,70,8,63]1
随机元素:851
我不明白这是因为851不在数组中?我做错了什么?
组合 echo
和 print
会产生问题(由于括号,它在末尾添加了 1)。 $faker
方法 randomElement
工作正常。
要修复只需删除额外的php方法。
echo("silos: ".$siloID);
echo("\nrandom element: ".$faker->randomElement($siloID));
我怀疑这只是为了测试输出,您的最终代码不需要 echo
/ print
语句组合,$faker
方法应该适合您。
您可以执行类似于以下示例的操作。它会 return 你的随机数组元素。在这里,我将 JSON 格式的随机数组值存储到数据库
$factory->define(Rule::class, function (Faker $faker) {
$rule = [
'age' => [
'borrower_age_min' => 'min:21',
'borrower_age_max' => 'max:75'
],
'affordability' => [
'annual_income' => 'integer|min:40000',
'loan_amount' => 'integer|max:3*',
],
'finance' => [
'loan_length' => 'integer|max:12',
'loan_amount' => 'integer|max:500000',
]
];
return [
'rule' => json_encode([
$faker->randomElement(
[
$rule['age']['borrower_age_min'],
$rule['age']['borrower_age_max'],
$rule['affordability']['annual_income'],
$rule['affordability']['loan_amount'],
$rule['finance']['loan_length'],
$rule['finance']['loan_amount']
]
)
])
];
});
我对 Laravel 和 Faker 有意见。我想用 faker 的 randomElement 函数从数组中选择一个随机元素。我有这个简单的代码:
$siloID = DB::table('silos')->pluck('id');
echo(print("silos: ".$siloID));
echo(print("\nrandom element: ".$faker->randomElement($siloID)));
这是在控制台上返回给我的:
筒仓:[3,9,14,18,21,93,42,55,88,99,31,38,65,1,23,68,98,13,39,40,45, 49,59,6,11,24,25,60,64,90,94,97,100,4,15,7,26,29,85,35,43,75,22,48,58,80,86, 87,62,82,89,30,95,12,28,33,73,17,27,57,72,74,83,91,69,78,37,76,81,20,53,79, 32,46,56,77,92,34,41,44,67,16,19,52,61,96,5,10 ,47,51,54,84,2,36,66,71,50,70,8,63]1
随机元素:851
我不明白这是因为851不在数组中?我做错了什么?
组合 echo
和 print
会产生问题(由于括号,它在末尾添加了 1)。 $faker
方法 randomElement
工作正常。
要修复只需删除额外的php方法。
echo("silos: ".$siloID);
echo("\nrandom element: ".$faker->randomElement($siloID));
我怀疑这只是为了测试输出,您的最终代码不需要 echo
/ print
语句组合,$faker
方法应该适合您。
您可以执行类似于以下示例的操作。它会 return 你的随机数组元素。在这里,我将 JSON 格式的随机数组值存储到数据库
$factory->define(Rule::class, function (Faker $faker) {
$rule = [
'age' => [
'borrower_age_min' => 'min:21',
'borrower_age_max' => 'max:75'
],
'affordability' => [
'annual_income' => 'integer|min:40000',
'loan_amount' => 'integer|max:3*',
],
'finance' => [
'loan_length' => 'integer|max:12',
'loan_amount' => 'integer|max:500000',
]
];
return [
'rule' => json_encode([
$faker->randomElement(
[
$rule['age']['borrower_age_min'],
$rule['age']['borrower_age_max'],
$rule['affordability']['annual_income'],
$rule['affordability']['loan_amount'],
$rule['finance']['loan_length'],
$rule['finance']['loan_amount']
]
)
])
];
});