l oop неправильно использует буфер - PullRequest
2 голосов
/ 23 марта 2020

Я создаю приложение, которое показывает ваш вес каждую неделю, и если какая разница с прошлой неделей.

У меня есть буфер для хранения веса прошлой недели, но каждый раз, когда он идет через l oop снова делает буфер [$ week] 1. Таким образом, он возвращает массив с (пример) $ weight 140.0 и $ weightDif 139.

UPDATE Теперь он показывает разницу в весе, но не правильные номера недели

public function highLow(){
        // get user id
        $user_id = auth()->user()->id;

        // make new array for weight difference per week
        $weightDif = array();

        // get list of weights of user
        $challenges = Challange::where('user_id', $user_id)->get();

        // make a buffer for previous values in the array
        $buffer = array();

        // check if week weight is higher or lower than last week
        foreach ($challenges as $challenge) {
            $week = $challenge->week;

            $weight = $challenge->weight;

            // set default value if buffer is not set
            if (!isset($buffer[$week])) {
                $buffer[$week] = $weight;
            }

            // weight difference
            $weightDif[$week]['weight'] = $weight;
            $weightDif[$week]['weightDif'] = $buffer[$week] - $weight;

            $week++;

            // add value to buffer so the next value can check if it's higher or lower.
            $buffer[$week] = $weight;

        }  
        // dd($weightDif);

        return $weightDif;      
    }

Фронтенд

@forelse($weightDif as $weeknumber => $week)            
            <tr>
                <td>{{$weeknumber}}</td>
                        <td>{{ $week['weight'] }}
                            @if ($week['weightDif'] < 0)
                                <span style="color:red;">&#9660 {{$week['weightDif']}}?</span>
                            @elseif ($week['weightDif'] > 0)
                                <span style="color:green;">&#9660 {{$week['weightDif']}}?</span>
                            @else
                                <span style="color:yellow;">&#9660 {{$week['weightDif']}}?</span>
                            @endif
                        </td>
                <td>
                    <a href="/challange/edit" class="btn btn-sm btn-success" data-toggle="tooltip"
                    data-placement="top" title=""
                    data-original-title="Pas klantdossier aan"><i class="uil-pen"></i></a>
                    <a href="/challange/destroy" class="btn btn-sm btn-danger" data-toggle="tooltip"
                    data-placement="top" title=""
                    data-original-title="Verwijder klant" onclick="return confirm('Weet je zeker dat je deze klant wilt verwijderen?');"><i class="uil-trash-alt"></i></a>
                </td>
            </tr>
            @empty
            <tr>
                <td>Geen challanges gevonden</td>
            </tr>
            @endforelse
```


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...