Php 如何在codeigniter中将数组值赋给foreach循环内的变量

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'");

我有一个具有不同用户ID的用户数组,我正在尝试使用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\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时,数组中只有一条记录吗?这个代码看起来太复杂了。代码应该具有最小的复杂度,在这种情况下,无法验证。