INSERT INTO RESULTS (UNIXDATE, ACTION, CURRENCY, AMOUNT)
SELECT bb.UNIXDATE, 'BUY', 'BTC', bb.AMOUNT FROM BTC_BUY bb
UNION ALL
SELECT bs.UNIXDATE, 'SELL', 'BTC', bs.AMOUNT FROM BTC_SELL bs
UNION ALL
SELECT eb.UNIXDATE, 'BUY', 'ETH', eb.AMOUNT FROM ETH_BUY eb
UNION ALL
SELECT es.UNIXDATE, 'SELL', 'ETH', es.AMOUNT FROM ETH_SELL es
ORDER BY UNIXDATE ASC;
<div>
<?php foreach($images as $img): ?>
<img src="images/<?=$img?>" alt="" width="200">
<?php endforeach; ?>
</div>
<?php
вместо <?
. Чтобы использовать второй вариант (как в вашем примере) в php.ini параметр short_open_tag
должен быть равен On
PREG_PATTERN_ORDER
Упорядочивает результаты так, что элемент $matches[0] содержит массив полных вхождений шаблона, элемент $matches[1] содержит массив вхождений первой подмаски и т.д.
$arr = [
['id' => 1, 'sub_id' => null, 'name'=> 'name1'],
['id' => 2, 'sub_id' => 1, 'name'=> 'name2'],
['id' => 3, 'sub_id' => 1, 'name'=> 'name3'],
['id' => 4, 'sub_id' => null, 'name'=> 'name4'],
['id' => 5, 'sub_id' => 2, 'name'=> 'name5'],
['id' => 6, 'sub_id' => 4, 'name'=> 'name6'],
];
/* https://stackoverflow.com/a/28429487 */
function buildTree(array &$elements, $parentId = 0) {
$branch = array();
foreach ($elements as &$element) {
if ($element['sub_id'] == $parentId) {
$children = buildTree($elements, $element['id']);
if ($children) {
$element['children'] = $children;
}
$branch[$element['id']] = $element;
unset($element);
}
}
return $branch;
}
function printTree(array $arr, $level=1) {
foreach ($arr as $k => $v) {
print(str_repeat('-', $level) . $v['name'] ."\n");
if(isset($v['children']) && is_array($v['children'])) {
printTree($v['children'], $level + 1);
}
}
}
printTree(buildTree($arr));
print('Количество строк: {}'.format(len(data.index)))
data[data['subcategory_id'] == 'total']
DELETE t1 FROM tbl_name t1
INNER JOIN tbl_name t2
WHERE
t1.id < t2.id AND
t1.product_id = t2.product_id AND
t1.category_id = t2.category_id AND
t1.modification_id = t2.modification_id;
Request URL: https://steamcommunity.com/market/itemordershistogram?country=RU&language=russian¤cy=1&item_nameid=176118358&two_factor=0
import re
result = re.findall(r'Market_LoadOrderSpread\(\s*(\d+)\s*\)', str(full_page.content))
print (result[0])
$arr = [
["small"=> "/images/0001_GOLD.jpg"],
["small"=> "/images/003_lux.jpg"],
["small"=> "/images/002_prod_3.jpg"],
["small"=> "/images/0002_GOLD.jpg"],
["small"=> "/images/002_prod_5.jpg"],
["small"=> "/images/002_lux.jpg"],
["small"=> "/images/002_prod_4.jpg"],
];
$lux = [];
$prod = [];
$gold = [];
foreach ($arr as $v) {
if(strpos($v['small'], 'lux') !== false) {
$lux[] = $v;
}
if(strpos($v['small'], 'prod_') !== false) {
$prod[] = $v;
}
if(strpos($v['small'], 'GOLD') !== false) {
$gold[] = $v;
}
}
print_r(array_merge($lux, $prod, $gold));
.htaccess
. Часто для него дополнительно ограничивают права. ALTER TABLE items ADD COLUMN item_id VARCHAR (16) DEFAULT NULL;
UPDATE items SET item_id = item->>'id';
ALTER TABLE items ADD COLUMN item_id_int BIGINT DEFAULT NULL;
UPDATE items SET item_id_int = (item->>'id')::bigint;
@param
используется для документирования аргумента функции или метода. В основном для улучшения автокомплита в ide.$file_url
, поэтому в ней указан относительный путь.$_SERVER['HTTP_HOST']
{% if cat_list %}
используйте:{% if cat_list and cat_list|length > 1 %}
class Entity
{
public function add(ComplexEntityValidator $validator) {
$validator->validate();
}
}
class ComplexEntityValidator
{
public function __construct(EntityRepository $repository) {
}
public function validate() {
// проверка
}
}
class EntityApplicationService
{
public function __construct(ComplexEntityValidator $validator) {
}
public function __invoke() {
$entity = new Entity();
$entity->add($validator);
// сохранение сущности
}
}