Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Created by PhpStorm.
- * User: vovas
- * Date: 12/28/2017
- * Time: 1:43 PM
- */
- $data = [
- [
- "id" => 1,
- "users" => 100,
- ], [
- "id" => 2,
- "users" => 108,
- ], [
- "id" => 3,
- "users" => 114,
- ], [
- "id" => 4,
- "users" => 98,
- ], [
- "id" => 5,
- "users" => 105,
- ], [
- "id" => 6,
- "users" => 110,
- ], [
- "id" => 7,
- "users" => 140,
- ], [
- "id" => 8,
- "users" => 141,
- ],
- ];
- function getPercent($prev, $current)
- {
- return ($current - $prev) / $prev * 100;
- }
- function getPrev($data, $currentIndex, $backNumber)
- {
- $index = $currentIndex - $backNumber;
- return $index > 0 ? $data[$index] : $data[0];
- }
- $totalUsers = $data[0]['users'];
- foreach ($data as $index => &$item) {
- $item['per_day'] = getPercent($totalUsers, $item['users']);
- $back3Days = getPrev($data, $index, 2);
- $back7Days = getPrev($data, $index, 6);
- $item['per_3_days'] = getPercent($back3Days['users'], $item['users']);
- $item['per_7_days'] = getPercent($back7Days['users'], $item['users']);
- $totalUsers = $item['users'];
- }
- ?>
- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
- integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
- <table class="table">
- <thead>
- <tr>
- <th>#</th>
- <th>Total users</th>
- <th>Per day</th>
- <th>Per 3 days</th>
- <th>Per 7 days</th>
- </tr>
- </thead>
- <tbody>
- <?php foreach ($data as $d) { ?>
- <?php
- $perDay = round($d['per_day'], 2);
- $per3Days = round($d['per_3_days'], 2);
- $per7Days = round($d['per_7_days'], 2);
- ?>
- <tr>
- <th scope="row"><?= $d['id'] ?></th>
- <td><?= $d['users'] ?></td>
- <td class="<?= $perDay > 0 ? 'success' : 'danger' ?>"><?= $perDay ?> %</td>
- <td class="<?= $per3Days > 0 ? 'success' : 'danger' ?>"><?= $per3Days ?> %</td>
- <td class="<?= $per7Days > 0 ? 'success' : 'danger' ?>"><?= $per7Days ?> %</td>
- </tr>
- <?php } ?>
- </tbody>
- </table>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement