Php 通过laravel中的id计算值
您好,我正在尝试从数组中计算值。 我的ResidentMail表看起来像Php 通过laravel中的id计算值,php,arrays,laravel-5,Php,Arrays,Laravel 5,您好,我正在尝试从数组中计算值。 我的ResidentMail表看起来像 id resident_id mail_type 1 10 message 2 10 wellness 3 10 message 4 11 wellness 5 11 wellness 6 11 message array( [
id resident_id mail_type
1 10 message
2 10 wellness
3 10 message
4 11 wellness
5 11 wellness
6 11 message
array(
[0] => [
[0] => [
'id' => 1
'resident_id' => 10
'mail_type' => 'message'
],
[1] => [
'id' => 2
'resident_id' => int 10
'mail_type' => 'wellness'
],
[2] => [
'id' => 3
'resident_id' => int 10
'mail_type' => 'message'
]
],
[1] => [
[0] => [
'id' => 4
'resident_id' => 11
'mail_type' => 'wellness'
],
[1] => [
'id' => 5
'resident_id' => int 11
'mail_type' => 'wellness'
],
[2] => [
'id' => 6
'resident_id' => int 11
'mail_type' => 'message'
]
],
)
这是我的阵列的样子
id resident_id mail_type
1 10 message
2 10 wellness
3 10 message
4 11 wellness
5 11 wellness
6 11 message
array(
[0] => [
[0] => [
'id' => 1
'resident_id' => 10
'mail_type' => 'message'
],
[1] => [
'id' => 2
'resident_id' => int 10
'mail_type' => 'wellness'
],
[2] => [
'id' => 3
'resident_id' => int 10
'mail_type' => 'message'
]
],
[1] => [
[0] => [
'id' => 4
'resident_id' => 11
'mail_type' => 'wellness'
],
[1] => [
'id' => 5
'resident_id' => int 11
'mail_type' => 'wellness'
],
[2] => [
'id' => 6
'resident_id' => int 11
'mail_type' => 'message'
]
],
)
需要输出想要的
所以它应该在计数时得到
[10] => [
[message] => 2,
[wellness] => 1
],
[11] => [
[message] => 1,
[wellness] => 2
],
....
在这里,我正在尝试生成该数组的代码
$resident = Resident::get();
foreach ($resident as $res) {
$residentEmail = ResidentEmail::where('resident_id', $res['id'])->get()->toArray();
$results[] = ResidentEmail::where('resident_id', '=' , $res['id'])->where(function($query){
$query->where('mail_type', 'message')
->orWhere('mail_type', 'wellness');
})->count();
}
我想我写错了,但我尝试了很多方法仍然得到错误的输出。请帮我解这个数组。好吧,我希望它能帮助你。
$resident = Resident::get();
foreach ($resident as $res) {
$residentEmail = ResidentEmail::where('resident_id', $res['id'])->get()->toArray();
$a[] = [
$res['id'] => [
'message' => collect($residentEmail)->where('mail_type', 'Message')->count(),
'wellness' => collect($residentEmail)->where('mail_type', 'Wellness')->count(),
]
];
}
好吧,我希望它能帮助你。
$resident = Resident::get();
foreach ($resident as $res) {
$residentEmail = ResidentEmail::where('resident_id', $res['id'])->get()->toArray();
$a[] = [
$res['id'] => [
'message' => collect($residentEmail)->where('mail_type', 'Message')->count(),
'wellness' => collect($residentEmail)->where('mail_type', 'Wellness')->count(),
]
];
}
想要的输出…???@AntonyJack该数组是我想要的输出。我想要这样的输出您可以在SQL中使用
邮件分组\u type
。所需输出…?@AntonyJack该数组是我所需的输出。我想要这样的输出您可以在SQL中使用邮件分组\u type
。是的完美答案您保存了我的一天。是的完美答案您保存了我的一天。