require_once 'vendor/autoload.php';
function levelGenerate(&$levels)
{
$max_level = 100; // тут указывается максимально возможный уровень
$lastLevel = $levels->last();
$levels->push([
'level' => ++$lastLevel['level'],
'rating' => $lastLevel['rating'] * 1.1,
]);
if ($levels->last()['level'] < $max_level) {
return levelGenerate($levels);
}
}
$levels = collect([['level' => 1, 'rating' => 100]]);
levelGenerate($levels);
$my_rating = 1245;
$my_level = $levels->where('rating', '<=', $my_rating)->last();
dd($my_level['level']); // 27
// my_rating = 741
// array:2 [▼
// "level" => 22
// "rating" => 740.02499442582
// ]
// my_rating = 150
// array:2 [▼
// "level" => 5
// "rating" => 146.41
// ]
// my_rating = 1245
// array:2 [▼
// "level" => 27
// "rating" => 1191.8176537727
// ]
import Vue from 'vue'
import App from './App'
const app = new Vue({
el: '#app',
template: '<App/>',
components: { App }
})
<template>
<div>
<tr v-for="corr in corrs" :key="corr.id">
<th>{{corr.id}}</th>
<td>{{corr.name}}</td>
<td>{{corr.fivest}}</td>
<td>{{corr.comment}}</td>
</tr>
</div>
</template>
<script>
import axios from 'axios'
export default {
data () {
return {
corrs: []
}
},
created () {
this.getAllCorrs()
},
methods: {
getAllCorrs () {
axios.get("http://url.local/api.php?action=read").then(response => {
this.corrs = response.data
}).catch(error => {
console.log('-----error-------')
console.log(error)
})
}
}
}
</script>
<div id="app"></div>
<script src="/js/my.js"></script>
Но мне кажется, что это не то.
created: function () {
// _.debounce — это функция из lodash, позволяющая ограничить
// то, насколько часто может выполняться определённая операция.
// В данном случае мы хотим ограничить частоту обращений к yesno.wtf/api,
// дожидаясь завершения печати вопроса перед тем как послать ajax-запрос.
// Чтобы узнать больше о функции _.debounce (и её родственнице _.throttle),
// см. документацию: https://lodash.com/docs#debounce
this.debouncedGetAnswer = _.debounce(this.getAnswer, 500)
},
$orderapi = 7690218;
$result = json_decode('{"orders":{"7690218":{"id":"7690218","obj":"wall35173603_613","act":"vk_like","status":"works","timeout":"10","count":"5","count_good":"0","start":"16:21 06.09.2018","criterion":"no"}}}');
$status = $result->orders->$orderapi->status; // works
$count_good = $result->orders->$orderapi->count_good; // 0
$_GET['filter'] = '1.5.2'; # AND `banner` = '1.5.2'
$_GET['filter'] = 'RU'; # AND `country` = 'RU'
$_GET['filter'] = 'Тег-Тег'; #AND `category_id` in (SELECT `category_id` FROM `categories` WHERE `name` IN ('Тег' , 'Тег'))
$_GET['filter'] = '1.5.2_RU_Тег-Тег'; # AND `banner` = '1.5.2' AND `country` = 'RU' AND `category_id` in (SELECT `category_id` FROM `categories` WHERE `name` IN ('Тег' , 'Тег'))
$_GET['filter'] = '1.5.2_RU'; # AND `banner` = '1.5.2' AND `country` = 'RU'
$sql = [];
if(isset($_GET['filter'])) {
$filter = sanitize($_GET['filter']);
$filter = explode('_', $filter);
for ($i = 0; $i < count($filter); $i++) {
if (preg_match('#^[0-9|\.]+$#', $filter[$i]))
$sql[] = "AND `banner` = '{$filter[$i]}'";
elseif (preg_match('#^[A-Z]{2}$#', $filter[$i]))
$sql[] = "AND `country` = '{$filter[$i]}'";
else {
$tags = array_map(function($v) {
return str_replace("'", "", $v);
}, explode('-', $filter[$i]));
$names = implode("' , '", $tags);
$sql[] = "AND `category_id` in (SELECT `category_id` FROM `categories` WHERE `name` IN ('{$names}'))";
}
}
}
$sql = implode(' ', $sql);
echo $sql; // это пихать в запрос к БД
$_GET['filter']
, это примеры запросов и их результат // нужные переменные
$app = new App();
$router = $app->router;
// страницы и соответствующие им файлы.
// если урл "site.ru/product" - то хотелось бы подключить product.php
$router->dist([
'index' => PAGES . 'index.php',
'product' => PAGES . 'product.php',
], compact('app', 'router'));
// метод dist (сокращенно):
public function dist($arr, $params) {
// файл подключается, но переменных, определенных выше - не видно
include_once $arr[$this->route];
}