mrusklon
@mrusklon
Не получается? Яростно гугли!

Как перебрать 2 массива на соответствие?

вот первый массив
array(6) {
  [0]=>
  array(4) {
    ["name"]=>
    string(14) "Смирнов"
    ["date"]=>
    string(10) "2019-03-07"
    ["user_id"]=>
    string(2) "11"
    ["sub_hours"]=>
    string(1) "8"
  }
  [1]=>
  array(4) {
    ["name"]=>
    string(10) "Кулик"
    ["date"]=>
    string(10) "2019-03-08"
    ["user_id"]=>
    string(2) "14"
    ["sub_hours"]=>
    string(1) "3"
  }
  [2]=>
  array(4) {
    ["name"]=>
    string(14) "Сидоров"
    ["date"]=>
    string(10) "2019-03-11"
    ["user_id"]=>
    string(2) "10"
    ["sub_hours"]=>
    string(2) "50"
  }
  [3]=>
  array(4) {
    ["name"]=>
    string(16) "Ильченко"
    ["date"]=>
    string(10) "2019-04-01"
    ["user_id"]=>
    string(2) "13"
    ["sub_hours"]=>
    string(1) "9"
  }
  [4]=>
  array(4) {
    ["name"]=>
    string(12) "Яетров"
    ["date"]=>
    string(10) "2019-04-16"
    ["user_id"]=>
    string(1) "9"
    ["sub_hours"]=>
    string(2) "10"
  }
  [5]=>
  array(4) {
    ["name"]=>
    string(18) "Андриянов"
    ["date"]=>
    string(10) "2019-04-17"
    ["user_id"]=>
    string(2) "12"
    ["sub_hours"]=>
    string(3) "100"
  }
}

вот второй
array(3) {
  [0]=>
  array(3) {
    ["id"]=>
    string(1) "1"
    ["off_date"]=>
    string(10) "2019-03-07"
    ["off_id"]=>
    string(1) "1"
  }
  [1]=>
  array(3) {
    ["id"]=>
    string(1) "3"
    ["off_date"]=>
    string(10) "2019-03-08"
    ["off_id"]=>
    string(1) "0"
  }
  [2]=>
  array(3) {
    ["id"]=>
    string(1) "5"
    ["off_date"]=>
    string(10) "2019-06-12"
    ["off_id"]=>
    string(1) "1"
  }
}



сейчас они вот так написаны
php код
foreach ($result as $row) {

        echo '<tr>';
        foreach ($result_days as $row_days) {

            if ($endtime <= $lastday) {
                if ($row_days['off_id'] == 0) { // выходной
                    $sub_hours = (int)$row['sub_hours'];
                    echo '<td>' . $row['user_id'] . '</td>';
                    echo '<td>' . $row['name'] . '</td>';
                    echo '<td>' . ($sub_hours = $sub_hours - 0) . '</td>';
                    echo '<td>' . $row['date'] . '</td>';
                    echo '<td>Выходной день</td>';

                }
                if ($row_days['off_id'] == 1) { //если сокращенка
                    $sub_hours = (int)$row['sub_hours'];
                    $sub_hours = $sub_hours - 7;
                    if ($sub_hours > 0) {
                        echo '<td>' . $row['user_id'] . '</td>';
                        echo '<td>' . $row['name'] . '</td>';
                        echo '<td>' . $sub_hours . '</td>';
                        echo '<td>' . $row['date'] . '</td>';
                        echo '<td>Сокращенный день</td>';
                    }

                }
                if ($row_days['off_id'] !== 0 && $row_days['off_id'] !== 1) { // остальные дни
                    $sub_hours = (int)$row['sub_hours'];
                    $sub_hours = $sub_hours - 8;
                    if ($sub_hours >= 8) {
                        echo '<td>' . $row['user_id'] . '</td>';
                        echo '<td>' . $row['name'] . '</td>';
                        echo '<td>' . $sub_hours . '</td>';
                        echo '<td>' . $row['date'] . '</td>';
                        echo '<td>Другой день</td>';
                    }
                }

            } else {
                echo '<td>' . $row['user_id'] . '</td>';
                echo '<td>' . $row['name'] . '</td>';
                echo '<td>Добавьте дэйоф</td>';
                echo '<td>' . $row['date'] . '</td>';
                echo '<td>Добавьте дэйоф</td>';
            }
        }

        echo '</tr>';

    }

    ?>


$result - первый массив
$result_days - второй
я не пойму как это написать одним массивом , у меня код дублируется изза второго массива
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы