如何将数组值分配给代码点火器中 foreach 循环内的变量



我有一个具有不同userId的用户数组,我正在尝试使用foreach循环循环这些数组。在该循环中,我调用一个函数,通过将用户 ID 传递到函数中来获取每个用户的值。但它只传递数组的一个索引。

我的代码

public function getDailyReportTest($orgId, $date)
{
$query = $this->db->query("SELECT *  FROM `organization_users` WHERE orgId='7'");
$timestamp = strtotime($date);
$day = date('l', $timestamp);

$data = array();
$i = 0;
foreach ($query->result_array() as $row) {
$data[$i]['date']    = $date;
$data[$i]['day']     = $day;
$data[$i]['user_id'] = $row['orgUserId'];
$data[$i]['user_name'] = $row['orgUserName'];

$data[$i]['workingHours'] = self::getUserWorkingHours($data[$i]['user_id'],$date);
$delayTime=self::getUserDelayTime($row['orgUserId'],$date);
$shortTime=self::getUserShortTime($row['orgUserId'],$date);
$overTime=self::getUserOverTime($row['orgUserId'],$date);
$data[$i]['delayTime']   =$delayTime;
$data[$i]['shortTime']   =$shortTime;
$data[$i]['overTime']    =$overTime;
$data[$i]['shift1_start'] = self::getUserShiftStartTime($row['orgUserId'], $date);  

$i=$i+1;
}
//return $data;
print_r($data);
die();
}
public function getUserShiftStartTime($userId, $date)
{
$query = $this->db->query("SELECT * FROM `office_employee_assigned_shifts` WHERE employeeId='$userId' &&shiftdate='$date'");
$entry = $query->num_rows();
$data = $query->result_array();
if($entry==0)
{
return NULL;
}
else
{
$shiftId = $data[0]['shiftId'];
$shiftquery = $this->db->query("SELECT startTimeSpan, endTimeSpan FROM `office_shift_time` WHERE officeShiftId='$shiftId'");
$dataShift = $shiftquery->result_array();
$startSpan = $dataShift[0]['startTimeSpan'];
$endSpan = $dataShift[0]['endTimeSpan'];

$firstPunchQuery = $this->db->query("SELECT punchTime AS firstPunch FROM `employee_punch_log` WHERE punchDate='$date' && employeeId='140' && punchTime BETWEEN '$startSpan' AND '$endSpan' AND punchType='1' LIMIT 1");
$punchEntryCount  = $firstPunchQuery->num_rows();
if($punchEntryCount>0)
{
$dataFirstPunch = $firstPunchQuery->result_array();
$firstPunchStartTime = $dataFirstPunch[0]['firstPunch'];
return $firstPunchStartTime;
}
else
{
return "AB";
}

}
// return $entry;
}

它只通过$data[1]['user_id']。

我想将$data[0]['user_id']、$data[1]['user_id']、$data[2]['user_id'] 传递给函数 命名为 getUserShiftStartTime($userId, $date(

有什么帮助吗? 提前感谢您的帮助

然后将当前变量传递给您的方法:

self::getUserShiftStartTime($data[$i]['user_id'], $date); 

最新更新