Php 如何在codeigniter中将数组值赋给foreach循环内的变量
我有一个具有不同用户ID的用户数组,我正在尝试使用foreach循环来循环这些数组。在这个循环中,我调用了一个函数,通过将每个用户的用户ID传递给一个函数来获取其值。但它只传递数组的一个索引 我的代码Php 如何在codeigniter中将数组值赋给foreach循环内的变量,php,arrays,codeigniter,Php,Arrays,Codeigniter,我有一个具有不同用户ID的用户数组,我正在尝试使用foreach循环来循环这些数组。在这个循环中,我调用了一个函数,通过将每个用户的用户ID传递给一个函数来获取其值。但它只传递数组的一个索引 我的代码 public function getDailyReportTest($orgId, $date) { $query = $this->db->query("SELECT * FROM `organization_users` WHERE orgId='7'");
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\u id']、$data[1]['user\u id']、$data[2]['user\u id']传递给函数
命名为getUserShiftStartTime$userId$date
有什么帮助吗?
提前感谢您的帮助然后将当前变量传递给您的方法:
self::getUserShiftStartTime($data[$i]['user_id'], $date);
代码中没有对函数getUserShiftStartTime的调用。当你打印$data时,这个数组中有多少条记录?@TufailAhmad miss:updated当你打印$data时,数组中只有一条记录吗?这个代码看起来太复杂了。代码应该具有最小的复杂度,在这种情况下,无法验证。