Web Мастерская
PHP: Дробное число без округления
В PHP есть функции:
Бывает появляется необходимость работать с дробями, но не округляя их, а оставляя так, как есть. Нашёл такое решение:
Кстати: Блог: Call to undefined function bcdiv().
Ещё вариант:
...
round | ceil | floor, которые округляют дробные числа, в большую или меньшую сторону, в зависимости от функции и самого числа. Удобно, да не всегда...Бывает появляется необходимость работать с дробями, но не округляя их, а оставляя так, как есть. Нашёл такое решение:
$n = bcdiv('1762.789', 1, 2); // 1762.78Кстати: Блог: Call to undefined function bcdiv().
Ещё вариант:
$n = floor(12.399 * 100) / 100; // 12.39- Жалоба
Call to undefined function bcdiv()
Для одной задачи, потребовалась функция:
В интернете найдено решение, выполнить команду:
Следует указать свою версию PHP....
bcdiv, но, при её использовании, получил ошибку: Uncaught Error: Call to undefined function bcdiv().В интернете найдено решение, выполнить команду:
sudo apt-get install php8.3-bcmathСледует указать свою версию PHP....
Как избавиться от наследования "opacity"
Известно, что CSS свойство
На:
И прозрачность будет только у родителя....
opacity наследуется элементами, что находятся внутри элемента с данным свойством. Для потомственных элементов свойство поменять не выйдет, прописав их в ручную. Однако, если прозрачность необходима для фона, можно поменять:
.class {
background: #FFFFFF;
opacity: 0.6;
}На:
.class {
background: rgba(255, 255, 255, 0.5);
}И прозрачность будет только у родителя....
Не использовать "cursor: pointer" если элемент "disabled"
Есть выбор из перечисленного:
На одном
Теперь, если у тега есть:
<input type="radio" class="choice" id="choice1" name:"action" />
<label class="categorylabel" for="choice1">
<div>
<!-- -->
</div>
</label>
<input type="radio" class="choice" id="choice2" name:"action" disabled />
<label class="categorylabel" for="choice2">
<div>
<!-- -->
</div>
</label>На одном
input прописан: disabled (Запрет использовать). Стояла задача менять курсор при наведении на label, но не менять курсор, если элемент имеет: disabled. Для решения этой задачи использовался следующий CSS код:
input[type="radio"][disabled] {
cursor: default;
}
input[type="radio"]:not([disabled]) + label {
cursor: pointer;
}Теперь, если у тега есть:
disabled, курсор не меняется на указательный палец, остаётся стрелочкой....PHP: Как составить из строки элемент массива
Стояла задача, составить из получаемой строки элемент массива. Допустим, есть такой массив:
Функция принимает строку:
С решением помогли на Хабр:
Оказалось, всё просто! С каждой итерацией мы переходим к следующему "вложению" массива, подбираясь к нужному нам элементу.
Проверяем:
На экране видим:
А значит всё правильно.
Для решении мой задачи, так же, есть библиотека Array Dot Notation, но я выбрал решение выше....
$arr = [
'k1' => [
'k2' => [
'k3' => [
'k4' => 'v'
]
]
]
];Функция принимает строку:
k1/k2/k3, используя данную строку, необходимо отдать элемент массива: $arr['k1']['k2']['k3'].С решением помогли на Хабр:
<?php
$arr = [
'k1' => [
'k2' => [
'k3' => [
'k4' => 'v'
]
]
]
];
$s = "k1/k2/k3";
$array = explode('/', $s);
foreach ($array as $v)
{
$arr = $arr[$v];
}Оказалось, всё просто! С каждой итерацией мы переходим к следующему "вложению" массива, подбираясь к нужному нам элементу.
Проверяем:
print_r($arr);На экране видим:
['k4' => 'v']А значит всё правильно.
Для решении мой задачи, так же, есть библиотека Array Dot Notation, но я выбрал решение выше....
