$checked = 5;
$count = 5;
$inputs = '';
for($i = 1; $i <= $count; $i++) {
$checked_attr = $i == $checked ? ' checked' : '';
$inputs .= '<input class="rating-input" id="mod' . $i . '" name="radio-rating" type="radio" value="' . $i . '"' . $checked_attr . '>';
$inputs .= '<label class="rating-star" for="mod' . $i . '" ></label>';
}
echo '
<div class="order_right">
<div class="wrap_stars">
<form class="form-rating" method="POST">
<fieldset>
<legend></legend>
<div class="rating-group" id="el_555' . $row["products_id"] . '">
' .$inputs . '
</div>
</fieldset>
<div class="count_block">
<!-- Статистика -->
<ul class="count" >рейтинг : ' . round($row["rating"], 1 ) . '</ul>
</div>
</form>
</div>
</div>
</li>
</div>
';
$query = 'INSERT INTO oc_product_description SET ';
foreach($product['oc_product_description'] as $k => $v){
$query .= $k.' = '."'$v'".',';
$query = substr($query,0,-1);
try {
$this->db->query($query);
} catch (\Throwable $e) {}
}
/**
* Производит заливку шаблона значениями из массива
*
* Литералы шаблона вида {<liter_1>.<liter_2>...} будут заменены на соотвествующие значения из массива
* $data[<liter_1>][<liter_2>]...
*
* @param $template Шаблон, содержащий литералы
* @param $data Массив значений для подстановки
* @return string Преобразованная строка
*/
public function fill_template($template, $data)
{
preg_match_all('/\{([A-Za-z0-9_\.]+)\}/u', $template, $match);
list($snippets, $fillers) = $match;
if (!empty($snippets)) {
$fillers = array_map(function($filler) use ($data) {
$keys = explode('.', $filler);
return $this->array_find($keys, $data);
}, $fillers);
return strtr($template, array_combine($snippets, $fillers));
}
return $template;
}
/**
* Рекурсивно ищет значение в массиве в порядке обозначенным $keys
*
* @param array $keys Массив ключей в порядке поиска их в массиве
* @param array $data Массив значений для поиска
* @param string $default Значение по умолчанию, если нет соответствующего значения в массиве
* @return mixed
*/
public function array_find($keys, $data, $default = '')
{
if (!is_array($data) || empty($keys)) return $data;
$key = current($keys);
return (isset($data[$key]))
? $this->array_find(array_slice($keys, 1), $data[$key], $default)
: $default;
}
$user = [
'id' => 1,
'name' => 'Ivan Ivanov',
'role' => 'developer',
'salary' => 100
];
fill_template('/api/items/{id}/{name}', $user); // /api/items/1/Ivan Ivanov
preg_match_all('/\{([A-Za-z0-9_\.]+)\}/u', $template, $match);
<?php
foreach($items as $value) {
$data = json_decode($value['tarif'], true);
foreach ($data as $item) {
?>
<div style="order:<?= $i =>" class="rowdesctop Rtable-cell <?= $class ?>">
<?= $item['title'] ?>
</div>
<?php
}
}
?>
<?php
//А тут капелька ФП :)
function list_item($i, $class, $item) {
return "<div style=\"order:$i\" class=\"rowdesctop Rtable-cell $class\">$item[title]</div>"
}
?>
<?= implode(array_map(
function ($value) use ($i, $class) {
return implode(array_map(
function ($item) use ($i, $class) {
return list_item($i, $class, $item);
}
json_decode($value['tarif'], true)
));
},
$items
))?>