>source

$salay라는 배열을 고려하십시오.

Array
(
      [0] => Array
        (
          [created_date] => 2020-10-23 00:00:00
          [salary] => 12000
        )
      [1] => Array
        (
          [created_date] => 2020-10-24 00:00:00
          [salary] => 1500
        )
      [2] => Array
        (
          [created_date] => 2020-11-11 00:00:00
          [salary] => 500
        )
      [3] => Array
         (
           [created_date] => 2020-11-11 00:00:00
           [salary] => 500
         )
      [4] => Array
         (
           [created_date] => 2020-11-12 00:00:00
           [salary] => 2000
         )
     
 )

나는 노력하고있다

  • 배열에서 반복되는 created_date 확인
  • 반복 된 날짜가 배열에있는 경우 급여를 추가하고 $result []라는 새 배열에 ( 'created_date'=>repeated_date, 'salary'=>added_salary.
  • 없으면 $result []로 직접 푸시합니다.

$result 배열은 다음과 같습니다.

   Array
    (
          [0] => Array
            (
              [created_date] => 2020-10-23 00:00:00
              [salary] => 12000
            )
          [1] => Array
            (
              [created_date] => 2020-10-24 00:00:00
              [salary] => 1500
            )
          [2] => Array
            (
              [created_date] => 2020-11-11 00:00:00
              [salary] => 1000
            )
         
          [3] => Array
             (
               [created_date] => 2020-11-12 00:00:00
               [salary] => 2000
             )
         
     )

감사,

  • 답변 # 1

    이 솔루션을 확인하십시오.

    $result = [];
    $salaries = [
            ["created_date" => "2020-10-23 00:00:00", "salary" => 12000],
            ["created_date" => "2020-10-24 00:00:00", "salary" => 1500],
            [ "created_date" => "2020-11-11 00:00:00", "salary" => 500],
            ["created_date" => "2020-11-11 00:00:00", "salary" => 500],
            ["created_date" => "2020-11-12 00:00:00", "salary" => 2000]
          ]; 
    foreach($salaries as $key =>$value){
             if(isset($result[$value['created_date']])){
                $result[$value['created_date']]['salary']+=$value['salary'];
               }else{
                $result[$value['created_date']]['created_date'] =$value['created_date'];
                $result[$value['created_date']]['salary'] =$value['salary'];
                }
    }
    sort($result);
    
    

  • 답변 # 2

    이 솔루션을 확인하십시오. 이것이 문제를 해결할 수 있기를 바랍니다. 날짜와 시간을 모두 확인합니다 (형식으로 2020-10-23 00:00:00 ).

    $salaries = [
            ["created_date" => "2020-10-23 00:00:00", "salary" => 12000],
            ["created_date" => "2020-10-24 00:00:00", "salary" => 1500],
            [ "created_date" => "2020-11-11 00:00:00", "salary" => 500],
            ["created_date" => "2020-11-11 00:00:00", "salary" => 500],
            ["created_date" => "2020-11-12 00:00:00", "salary" => 2000]
          ]; 
    $result = [];
    function checkDuplicateIndex($result, $date) {
      $index = -1;
      for($i= 0; $i<count($result); $i++) {
         if (strtotime($result[$i]['created_date']) == strtotime($date)) {
            $index = $i; 
            break;
         }
      }
      return $index;
     }
    foreach($salaries as $salary) {
        $index = checkDuplicateIndex($result, $salary['created_date']);
        if ($index == -1) {
            array_push($result, $salary);
        } else {
            $result[$index]['salary'] = $result[$index]['salary'] + $salary['salary'];
        }
    }
    
    

관련 자료

  • 이전 c# - 비활성화 된 버튼의 내용에서 테두리를 비활성화하지 * 않을 * 수 있습니까?
  • 다음 c - 밀리 초 미만의 TOD 타이머에서 레이스 피하기