這是我的陣列形式的輸出
[0] => stdClass Object
(
[status] => P
[date] => 10/02/2022
[firstname] => testing 10
[subject_id] => 5
)
[1] => stdClass Object
(
[status] => A
[date] => 10/02/2022
[firstname] => arsalan 12
[subject_id] => 5
)
[2] => stdClass Object
(
[status] => L
[date] => 10/02/2022
[firstname] => khan 4
[subject_id] => 5
)
[3] => stdClass Object
(
[status] => P
[date] => 10/03/2022
[firstname] => testing 10
[subject_id] => 5
)
[4] => stdClass Object
(
[status] => L
[date] => 10/03/2022
[firstname] => arsalan 12
[subject_id] => 5
)
[5] => stdClass Object
(
[status] => A
[date] => 10/03/2022
[firstname] => khan 4
[subject_id] => 5
)
[6] => stdClass Object
(
[status] => P
[date] => 10/04/2022
[firstname] => testing 10
[subject_id] => 5
)
[7] => stdClass Object
(
[status] => P
[date] => 10/04/2022
[firstname] => arsalan 12
[subject_id] => 5
)
[8] => stdClass Object
(
[status] => P
[date] => 10/04/2022
[firstname] => khan 4
[subject_id] => 5
)
[9] => stdClass Object
(
[status] => P
[date] => 10/05/2022
[firstname] => testing 10
[subject_id] => 5
)
[10] => stdClass Object
(
[status] => A
[date] => 10/05/2022
[firstname] => arsalan 12
[subject_id] => 5
)
這是控制器上的代碼
$attendance = DB::table('attendances')
->join('users', 'attendances.user_id', '=', 'users.id')
->havingBetween('attendances.date', array($dateFrom, $dateTo))
->having('attendances.subject_id','=',$ideas[0])
->orderBy('attendances.date','asc')
->get(['attendances.status','attendances.date','users.firstname','attendances.subject_id'])->toArray();
我想要這種型別的陣列
[0] => stdClass Object
(
[status] =>
[
P,
p,
p,
p
]
[date] => [
10/02/2022,
10/03/2022,
10/04/2022,
10/05/2022,
]
[firstname] => testing 10
[subject_id] => 5
)
[1] => stdClass Object
(
[status] =>
[
A,
L,
p,
A
]
[date] => [
10/02/2022,
10/03/2022,
10/04/2022,
10/05/2022,
]
[firstname] => arsalan 12
[subject_id] => 5
)
[2] => stdClass Object
(
[status] =>
[
L,
a,
p,
A
]
[date] => [
10/02/2022,
10/03/2022,
10/04/2022,
10/05/2022,
]
[firstname] => khan 4
[subject_id] => 5
)
在表格上顯示學生的出勤情況,就像出勤登記一樣。出席不是每天的基地。請幫助我,我不知道該怎么做。這是我對同一問題的第二個問題。
uj5u.com熱心網友回復:
你想分組firstname。我們將回圈遍歷添加到帶有鍵的項陣列中的項firstname。
$arr = array(
"0" => array(
"status" => 'P',
"date" => "10/02/2022",
"firstname" => "testing 10",
"subject_id" => 5,
),
"1" => array(
"status" => 'A',
"date" => "10/02/2022",
"firstname" => "arsalan 12",
"subject_id" => 5,
),
"2" => array(
"status" => 'L',
"date" => "10/02/2022",
"firstname" => "khan 4",
"subject_id" => 5,
),
"3" => array(
"status" => 'P',
"date" => "10/03/2022",
"firstname" => "testing 10",
"subject_id" => 5,
),
"4" => array(
"status" => 'L',
"date" => "10/03/2022",
"firstname" => "arsalan 12",
"subject_id" => 5,
),
"5" => array(
"status" => 'A',
"date" => "10/03/2022",
"firstname" => "khan 4",
"subject_id" => 5,
),
"6" => array(
"status" => 'P',
"date" => "10/04/2022",
"firstname" => "testing 10",
"subject_id" => 5,
),
"7" => array(
"status" => 'P',
"date" => "10/04/2022",
"firstname" => "arsalan 12",
"subject_id" => 5,
),
"8" => array(
"status" => 'P',
"date" => "10/04/2022",
"firstname" => "khan 4",
"subject_id" => 5,
),
"9" => array(
"status" => 'P',
"date" => "10/05/2022",
"firstname" => "testing 10",
"subject_id" => 5,
),
"10" => array(
"status" => 'A',
"date" => "10/05/2022",
"firstname" => "arsalan 12",
"subject_id" => 5,
),
);
$result = array_values(array_reduce($arr, function ($agg, $item) {
if (!isset($agg[$item['firstname']])) {
$agg[$item['firstname']] = [
"status" => [],
"date" => [],
"firstname" => $item['firstname'],
"subject_id" => $item['subject_id'],
];
}
$agg[$item['firstname']]['status'][] = $item['status'];
$agg[$item['firstname']]['date'][] = $item['date'];
return $agg;
}, []));
print_r($result);
輸出:
Array
(
[0] => Array
(
[status] => Array
(
[0] => P
[1] => P
[2] => P
[3] => P
)
[date] => Array
(
[0] => 10/02/2022
[1] => 10/03/2022
[2] => 10/04/2022
[3] => 10/05/2022
)
[firstname] => testing 10
[subject_id] => 5
)
[1] => Array
(
[status] => Array
(
[0] => A
[1] => L
[2] => P
[3] => A
)
[date] => Array
(
[0] => 10/02/2022
[1] => 10/03/2022
[2] => 10/04/2022
[3] => 10/05/2022
)
[firstname] => arsalan 12
[subject_id] => 5
)
[2] => Array
(
[status] => Array
(
[0] => L
[1] => A
[2] => P
)
[date] => Array
(
[0] => 10/02/2022
[1] => 10/03/2022
[2] => 10/04/2022
)
[firstname] => khan 4
[subject_id] => 5
)
)
uj5u.com熱心網友回復:
稍作改動,它對我有用,例如
$result = array_values(array_reduce($attendance, function ($agg, $item) {
if (!isset($agg[$item->firstname])) {
$agg[$item->firstname] = [
"status" => [],
"date" => [],
"firstname" => $item->firstname,
"subject_id" => $item->subject_id,
];
}
$agg[$item->firstname]['status'][] = $item->status;
$agg[$item->firstname]['date'][] = $item->date;
return $agg;
}, []));
print_r($result);
輸出是
[0] => Array
(
[status] => Array
(
[0] => P
[1] => P
[2] => P
[3] => P
[4] => P
[5] => L
[6] => L
[7] => L
)
[date] => Array
(
[0] => 10/02/2022
[1] => 10/03/2022
[2] => 10/04/2022
[3] => 10/05/2022
[4] => 10/07/2022
[5] => 10/10/2022
[6] => 10/12/2022
[7] => 10/13/2022
)
[firstname] => testing 10
[subject_id] => 5
)
[1] => Array
(
[status] => Array
(
[0] => A
[1] => L
[2] => P
[3] => A
[4] => P
[5] => L
[6] => L
[7] => L
)
[date] => Array
(
[0] => 10/02/2022
[1] => 10/03/2022
[2] => 10/04/2022
[3] => 10/05/2022
[4] => 10/07/2022
[5] => 10/10/2022
[6] => 10/12/2022
[7] => 10/13/2022
)
[firstname] => arsalan 12
[subject_id] => 5
)
[2] => Array
(
[status] => Array
(
[0] => L
[1] => A
[2] => P
[3] => P
[4] => P
[5] => L
[6] => L
[7] => L
)
[date] => Array
(
[0] => 10/02/2022
[1] => 10/03/2022
[2] => 10/04/2022
[3] => 10/05/2022
[4] => 10/07/2022
[5] => 10/10/2022
[6] => 10/12/2022
[7] => 10/13/2022
)
[firstname] => khan 4
[subject_id] => 5
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/514646.html
標籤:php拉拉维尔
上一篇:PhpStorm(Laravel8)在一個模型上找不到所有標準的雄辯方法,但在另一個模型上可用(沒有代碼提示)
下一篇:在LARAVEL中對集合進行分組
