Я создаю приложение, которое показывает ваш вес каждую неделю, и если какая разница с прошлой неделей.
У меня есть буфер для хранения веса прошлой недели, но каждый раз, когда он идет через 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;">▼ {{$week['weightDif']}}?</span>
@elseif ($week['weightDif'] > 0)
<span style="color:green;">▼ {{$week['weightDif']}}?</span>
@else
<span style="color:yellow;">▼ {{$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
```