<?php
$data1 = [
'id' => 1,
'quantity' => 10,
];
$data2 = [
'id' => 1,
'quantity' => 20,
];
function my_sum($all_data){
return array_reduce($all_data,function($a, $b)
{
$b['quantity'] = $a ? $b['quantity'] + $a['quantity']:$b['quantity'];
return $b;
});
}
$summ = my_sum([$data1,$data2]);
var_dump($summ);
GET sita-poka-chto.netu/advert_id/999999999
$str ="<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<h2></h2>
<p></p>
<p></p>";
$i = 0;
$str = preg_replace_callback("/<\/p>/u", function($match) use(&$i){
$i ++;
if($i % 2 == 0){
return "</p><div></div>";
}
return "</p>";
}, $str);
echo $str;
// ...
if (!YII_ENV_TEST) {
// configuration adjustments for 'dev' environment
$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = [
'class' => 'yii\debug\Module',
'allowedIPs' => ['*'],
];
// ...
}
сайт работает совсем не так
Метод bind() используется преимущественно для того, чтобы вызвать функцию с явным указанием значения this. Другими словами, bind() позволяет нам указать, ссылка на какой объект будет значением this, когда функция будет вызвана, и вызвать эту функцию.
function bind( method, context) {
//удаляем первые два аргумента - method,context
var args = Array.prototype.slice.call(arguments,2);
return function () {
//те аргументы которые добавлены в method через bind остаются + добавляем те
// которые при вызове функции добавлены
var a = args.concat(Array.prototype.slice.call(arguments,0));
//возвращаем функцию method, где контекст вызова(this) - context
return method.apply(context, a);
}
}
function getThisAndParams(...a){
console.log(this);
a.forEach(function(el){
console.log(el);
});
}
var arr = [2,3,6,8];
var method1 = bind(getThisAndParams,arr);
method1('hello','world','Vasya'); //выведет массив arr и "Hello" "world" "Vasya"
var method2 = bind(getThisAndParams,arr,'Yo yo yo');
method2('hello','world','Vasya'); //выведет массив arr и 'Yo yo yo' 'hello' 'world' 'Vasya'
//слова
$array = ['green', 'purple', 'white', 'black', 'grey'];
//массив с переводами чтобы сто раз if не писать как дундук
$translate = [
'green' => 'зеленый',
'white' => 'белый'
];
//1 вариант (для php > 7.0 короткий синтаксис)
foreach ($array as $k => $v) {
$array[$k] = $translate[$v] ?? $v;
}
//2 вариант (для php > 5.4 короткий синтаксис)
foreach ($array as $k => $v) {
$array[$k] = isset($translate[$v]) ?$translate[$v] : $v;
}
//3 вариант(длинная запись через if php > 5.4)
foreach ($array as $k => $v) {
if(isset($translate[$v])){
$array[$k] = $translate[$v];
}
}
public function beforeSave($insert)
{
if (!parent::beforeSave($insert)) {
return false;
}
$description = new Description();
$description->book_id = $this->id;
$description->old_text = $this->text;
$description->created_at = time();
$description->save();
return true;
}
SELECT
ships.sudovlad,
s1.gruz_pass as summa,
EXTRACT(YEAR FROM s1.data_vih_p_ot) as years,
((s2.gruz_pass - s1.gruz_pass) / s1.gruz_pass * 100) AS percent,
s2.gruz_pass as summa2,
EXTRACT(YEAR FROM s2.data_vih_p_ot) AS years2
FROM ships
LEFT JOIN ships as s1
ON ships.sudovlad = s1.sudovlad AND EXTRACT(YEAR FROM s1.data_vih_p_ot)=2017 AND s1.sudovlad IN ('Русфлот, ООО', 'АрктикТранс ОИЛ, ООО','pere')
LEFT JOIN ships as s2
ON ships.sudovlad = s2.sudovlad AND EXTRACT(YEAR FROM s2.data_vih_p_ot)=2018 AND s2.sudovlad IN ('Русфлот, ООО', 'АрктикТранс ОИЛ, ООО','pere')
GROUP BY sudovlad
SELECT
reservtable.sudovlad,
reservtable.summa,
reservtable.years,
((reservtable2.summa2 - reservtable.summa) / reservtable.summa * 100) AS percent,
reservtable2.summa2,
reservtable2.years2
FROM(
SELECT sudovlad,gruz_pass as summa,EXTRACT(YEAR FROM data_vih_p_ot) AS years
FROM ships
WHERE EXTRACT(YEAR FROM data_vih_p_ot) = 2017 AND sudovlad IN ('Русфлот, ООО', 'АрктикТранс ОИЛ, ООО')
GROUP BY sudovlad) reservtable,
(SELECT sudovlad,gruz_pass as summa2,EXTRACT(YEAR FROM data_vih_p_ot) AS years2
FROM ships
WHERE EXTRACT(YEAR FROM data_vih_p_ot) = 2018 AND sudovlad IN ('Русфлот, ООО', 'АрктикТранс ОИЛ, ООО')
GROUP BY sudovlad) reservtable2
GROUP BY sudovlad
<?php
class admin{
function edit(){
echo "Hello World";
}
}
//парсим REQUEST_URI
$explode = explode('/',$_SERVER['REQUEST_URI']);
//выбираем имя контроллера и метода
$controllerClass = $explode[1];
$action = $explode[2];
//вызываем
call_user_func_array([$controllerClass,$action],[]);
Yii Framework умирает, почитайте что пишут разработчики его ядра