سلام دوستان
من چطوری میتونم همچین آرایه ای رو که دارم میانگین امتیازات هر دسته رو مجاسبه کنم ؟ به فرض کیفیت ساخت میخوام تمام امتیازاتی که توسط همه کاربران داده شده رو میانگین بگیرم
هر کدام از ابجکت های امتیاز به فرض (کیفیت ساخت ) بصورت داینامیک ساخه میشن و میتونه هر اسمی داشته باشه
[
{
"id": 3,
"user_id": 2,
"title": "کیفیت ساخت",
"created_at": "2020-04-26T23:59:21.000000Z",
"updated_at": "2020-04-26T23:59:21.000000Z",
"deleted_at": null,
"pivot": {
"comment_id": 12,
"score_id": 3,
"score_qty": 5
}
},
{
"id": 4,
"user_id": 2,
"title": "زیبایی ظاهر",
"created_at": "2020-04-26T23:59:47.000000Z",
"updated_at": "2020-04-27T00:02:06.000000Z",
"deleted_at": null,
"pivot": {
"comment_id": 12,
"score_id": 4,
"score_qty": 2
}
},
{
"id": 5,
"user_id": 2,
"title": "ابعاد و اندازه",
"created_at": "2020-04-27T00:59:01.000000Z",
"updated_at": "2020-04-27T00:59:01.000000Z",
"deleted_at": null,
"pivot": {
"comment_id": 12,
"score_id": 5,
"score_qty": 5
}
},
{
"id": 6,
"user_id": 2,
"title": "کارایی",
"created_at": "2020-04-27T00:59:09.000000Z",
"updated_at": "2020-04-27T00:59:09.000000Z",
"deleted_at": null,
"pivot": {
"comment_id": 12,
"score_id": 6,
"score_qty": 4
}
},
{
"id": 7,
"user_id": 2,
"title": "دوربین",
"created_at": "2020-04-27T01:04:07.000000Z",
"updated_at": "2020-04-27T01:04:07.000000Z",
"deleted_at": null,
"pivot": {
"comment_id": 12,
"score_id": 7,
"score_qty": 2
}
},
{
"id": 8,
"user_id": 2,
"title": "فیلم برداری",
"created_at": "2020-04-27T01:11:37.000000Z",
"updated_at": "2020-04-27T01:11:37.000000Z",
"deleted_at": null,
"pivot": {
"comment_id": 12,
"score_id": 8,
"score_qty": 5
}
},
{
"id": 3,
"user_id": 2,
"title": "کیفیت ساخت",
"created_at": "2020-04-26T23:59:21.000000Z",
"updated_at": "2020-04-26T23:59:21.000000Z",
"deleted_at": null,
"pivot": {
"comment_id": 13,
"score_id": 3,
"score_qty": 4
}
},
{
"id": 4,
"user_id": 2,
"title": "زیبایی ظاهر",
"created_at": "2020-04-26T23:59:47.000000Z",
"updated_at": "2020-04-27T00:02:06.000000Z",
"deleted_at": null,
"pivot": {
"comment_id": 13,
"score_id": 4,
"score_qty": 2
}
},
{
"id": 5,
"user_id": 2,
"title": "ابعاد و اندازه",
"created_at": "2020-04-27T00:59:01.000000Z",
"updated_at": "2020-04-27T00:59:01.000000Z",
"deleted_at": null,
"pivot": {
"comment_id": 13,
"score_id": 5,
"score_qty": 4
}
},
{
"id": 6,
"user_id": 2,
"title": "کارایی",
"created_at": "2020-04-27T00:59:09.000000Z",
"updated_at": "2020-04-27T00:59:09.000000Z",
"deleted_at": null,
"pivot": {
"comment_id": 13,
"score_id": 6,
"score_qty": 4
}
},
{
"id": 7,
"user_id": 2,
"title": "دوربین",
"created_at": "2020-04-27T01:04:07.000000Z",
"updated_at": "2020-04-27T01:04:07.000000Z",
"deleted_at": null,
"pivot": {
"comment_id": 13,
"score_id": 7,
"score_qty": 2
}
},
{
"id": 8,
"user_id": 2,
"title": "فیلم برداری",
"created_at": "2020-04-27T01:11:37.000000Z",
"updated_at": "2020-04-27T01:11:37.000000Z",
"deleted_at": null,
"pivot": {
"comment_id": 13,
"score_id": 8,
"score_qty": 5
}
},
{
"id": 3,
"user_id": 2,
"title": "کیفیت ساخت",
"created_at": "2020-04-26T23:59:21.000000Z",
"updated_at": "2020-04-26T23:59:21.000000Z",
"deleted_at": null,
"pivot": {
"comment_id": 14,
"score_id": 3,
"score_qty": 2
}
},
{
"id": 4,
"user_id": 2,
"title": "زیبایی ظاهر",
"created_at": "2020-04-26T23:59:47.000000Z",
"updated_at": "2020-04-27T00:02:06.000000Z",
"deleted_at": null,
"pivot": {
"comment_id": 14,
"score_id": 4,
"score_qty": 4
}
},
{
"id": 5,
"user_id": 2,
"title": "ابعاد و اندازه",
"created_at": "2020-04-27T00:59:01.000000Z",
"updated_at": "2020-04-27T00:59:01.000000Z",
"deleted_at": null,
"pivot": {
"comment_id": 14,
"score_id": 5,
"score_qty": 4
}
},
{
"id": 6,
"user_id": 2,
"title": "کارایی",
"created_at": "2020-04-27T00:59:09.000000Z",
"updated_at": "2020-04-27T00:59:09.000000Z",
"deleted_at": null,
"pivot": {
"comment_id": 14,
"score_id": 6,
"score_qty": 2
}
},
{
"id": 7,
"user_id": 2,
"title": "دوربین",
"created_at": "2020-04-27T01:04:07.000000Z",
"updated_at": "2020-04-27T01:04:07.000000Z",
"deleted_at": null,
"pivot": {
"comment_id": 14,
"score_id": 7,
"score_qty": 4
}
},
{
"id": 8,
"user_id": 2,
"title": "فیلم برداری",
"created_at": "2020-04-27T01:11:37.000000Z",
"updated_at": "2020-04-27T01:11:37.000000Z",
"deleted_at": null,
"pivot": {
"comment_id": 14,
"score_id": 8,
"score_qty": 1
}
}
]
@rabco
سلام.
از روش زیر استفاده کنید.
$average = ModelName::all()->sum('score_qty') / ModelName::all()->count();
عذر میخوام ی جا رو توضیح ندادم من برای هر محصول این کار رو باید کنم و این که هر کاربر به تعداد نا محدود میتونه نطر رو ارسال کنه و امتیاز بده
متد avg در کالکشن میانگین رو برات برمیگردونه
$average = collect([1, 1, 2, 4])->avg();
// return 2
// 1 + 1 + 2 + 4 = 8
// 8 / 4 = 2
الکوئنت هم که داده ها رو به شکل کالکشن برمیگردونه.. پس میتونی از متد avg استفاده کنی.
یا میتونی فیلد score_qty رو pluck کنی و نتایج رو به آرایه تبدیل کنی.. اون آرایه رو بریزی توی یه کالکشن و بعدش از avg استفاده کنی.. شبیه زیر:
$array = Model::pluck('score_qty')->toArray();
$collection = collect($array);
$average = $collection->avg();
اطلاعات بیشتر در مستندات:
https://laravel.com/docs/7.x/collections#method-avg
ممنونم ولی درست متوجه نشدم من میخوام از هر کدوم مثلا (کیفیت ساخت ) بیاد تمام کیفیت ساخت هایی که داخل نظرات برای یک محصول هستن رو با هم میانگینشون رو حساب کنه و همینطور برای باقی موارد اخر سر تنها میانگین اون مورد رو به من بده
عذر میخوام زیاد سوال می پرسم
شما برای گرفتن اطلاعاتی که میخوای باید یه کوئری بسازی
و بعد یه فیلد رو انتخاب کنی
و بعد هم میانگینش رو بگیری که بالا توضیح دادم
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟