gpt4 book ai didi

php - 我如何将 array_column 值传递给另一个数组 - PHP

转载 作者:行者123 更新时间:2023-11-30 21:50:42 25 4
gpt4 key购买 nike

我正在为我的出勤报告生成 csv 文件,这是我关于选择所有学生及其日志的查询:

    $students = User::has('userStudentAttendance')->with(['userStudentAttendance' => function($query) use ($details,$search_from, $search_to){
$query->where('status', $details);
$query->where(function($query) use ($search_from, $search_to){
$query->whereBetween(DB::raw('Date(created_at)'), [$search_from, $search_to]);
});
$query->groupby('user_id')->groupby(DB::raw('Date(created_at)'));
}])
->leftjoin('sys_user_student', 'sys_user_student.user_id', '=', 'sys_user.user_id')
->leftjoin('sys_mf_section', 'sys_mf_section.section_id', '=', 'sys_user_student.section_id')
->leftjoin('sys_mf_grade', 'sys_mf_grade.grade_id', '=', 'sys_mf_section.grade_id')
->where('user_type_id', '4')
->where('sys_mf_section.section_id', $request->getParam('section_id'))
->where('sys_mf_grade.grade_id', $request->getParam('grade_id'))
->orderBy('sys_user.last_name')
->get();

if ($students->count() > 0)
{

echo "<pre>";
var_dump($test_array);
exit();

$csv = $this->csv;

$csv->exportHeader('attendance (' . date_format(date_create($request->getParam('search_from')),"M-d-Y") . ' - ' . date_format(date_create($request->getParam('search_to')),"M-d-y") . ')');
$csv->startInstance();

$csv->addRow([
'Student No.',
'Fullname',
'Gender',
'Date & Time'
]);

foreach ($students as $student) {

$logs = $student->userStudentAttendance;
$logs_array = array_column($logs, 'created_at');

$csv->addRow([
$student->identification_number,
$student->last_name.", ".$student->first_name,
$student->gender,
$student->userStudentAttendance
]);
}

$csv->endInstance();

die();
}

$userStudentAttendance 给出了一个 json 对象,所以为了在 php 中显示它,我使用了

$logs = json_decode($userStudentAttendance)

将其转换为关联数组,然后我将其转换为 array_column 以获得我想要显示的唯一列

$logs_array = array_column($logs, 'created_at')

然后我在 $csv->addRow([])

中更改了 $student->userStudentAttendance

现在看起来像这样:

         foreach ($students as $student) {

$csv->addRow([
$student->identification_number,
$student->last_name.", ".$student->first_name,
$student->gender,
$logs_array
]);
}

然后现在将其转换为 csv 时,$logs_array 行为空。怎么了?谁能帮我?提前致谢

最佳答案

我想,addRow 期望参数数组的每一项都是字符串,因此可以将其放入 csv 文件中。您对 array_column 的调用返回数组,这不是字符串。这就是为什么您需要 内爆 数组值,例如:

$csv->addRow([                  
$student->identification_number,
$student->last_name.", ".$student->first_name,
$student->gender,
implode(',', $logs_array) // Here we implode values
]);

关于php - 我如何将 array_column 值传递给另一个数组 - PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47408436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com