$array = [
['value' => 'photo-wallpapers', 'label' => 'Фотообои'],
['value' => 'fresco', 'label' => 'Фреска'],
['value' => 'panno', 'label' => 'Панно'],
['value' => 'fresco', 'label' => 'Test']
];
usort($array, function($a, $b){
return $a['value'] <=> $b['value'];
});
var_dump($array);
$num1 = 5;
$num2 = 10;
while ($num1 <= $num2) {
echo $num1++, ' ';
}
$num1 = 15;
$num2 = 10;
if ($num1 > $num2) {
$temp = $num1;
$num1 = $num2;
$num2 = $temp;
}
while ($num1 <= $num2) {
echo $num1++, ' ';
}
~com/(?:[^/]+/)?\K[^/\s?]+~
я там не нашел буквы К и ?:
K
, а последовательность символов \K
, означающая сброс буфера регулярных выражений, или проще говоря - удаление из памяти найденных на данный момент совпадений. Символы ?:
вы тоже ошибочно вырвали из контекста - в оригинале они пишутся так: (?:...), и означают они незахватывающую группировку. Её отличие от обычной группировки (...) в том, что она не сохраняет в памяти группу символов, находящихся внутри скобок. Ну и последнее: последовательность символов \s
означает символьный класс всех пробельных символов (табуляция, перевод на новую строку, и т.п.).$arr = [
[
'COLOR' => 'Red',
'WEIGHT' => 20
],
[
'COLOR' => 'Red',
'WEIGHT' => 25
],
[
'COLOR' => 'Red',
'WEIGHT' => 30
],
[
'COLOR' => 'Green',
'WEIGHT' => 20
],
[
'COLOR' => 'Green',
'WEIGHT' => 25
],
[
'COLOR' => 'Green',
'WEIGHT' => 30
]
];
$out = [];
foreach ($arr as $a) {
$out[$a['COLOR']][] = $a['WEIGHT'];
}
foreach (array_map(function($a){ return join(', ', $a); }, $out) as $k => $item) {
echo "$k $item<br>";
}
~@[\h\pL]+\(([^)]+)\)\h\{([^}]+)\}\K~
$arr = [
'863|20',
'863|50',
'822|100',
'822|100'
];
$out = [];
foreach ($arr as $item) {
[$k, $v] = explode('|', $item);
$out[$k][] = $v;
}
var_dump($out);
array (size=2)
863 =>
array (size=2)
0 => string '20' (length=2)
1 => string '50' (length=2)
822 =>
array (size=2)
0 => string '100' (length=3)
1 => string '100' (length=3)
$arr = [
'863|20',
'863|50',
'822|100',
'822|100'
];
$out = [];
foreach ($arr as $item) {
[$k, $v] = explode('|', $item);
$out[$k] = ($out[$k] ?? 0) + $v;
}
var_dump($out);
/*
array (size=2)
863 => int 70
822 => int 200
*/
function formatNumber(int $int): string
{
$k = (int) log($int, 1000);
$float = round($int / pow(1000, $k), 1);
$letters = ['К', 'М', 'Млрд'];
return $float . ($letters[--$k] ?? '');
}
echo formatNumber(7); // 7
echo formatNumber(78); // 78
echo formatNumber(789); // 789
echo formatNumber(7899); // 7.9К
echo formatNumber(78991); // 79К
echo formatNumber(789919); // 789.9К
echo formatNumber(7899191); // 7.9М
echo formatNumber(78991911); // 79М
echo formatNumber(789919119); // 789.9М
echo formatNumber(7899191191); // 7.9Млрд
echo formatNumber(78991911910); // 79Млрд
$string = '40|https://site1.com/files/02bea218b601ef2cbc74e08dc8d78_1000_1000.png;77|https://site1.com/files/29037cbdc27707fe2d6b2cf4d3924_1000_1000.png;78|https://site1.com/files/923b6f214f8bffcf20fbbebe5365b_1000_1000.png;85|https://site1.com/files/f8b6dbe261e89877e23e6a6f00003_1000_1000.png';
$result = rtrim(preg_replace('~\|[^;]+(?:;|$)~', ',', $string), ',');
echo $result; // 40,77,78,85
$json = '{"v": 50, "vd": 5},
{"v": 51, "vd": 1},
{"v": 54, "vd": 3},
{"v": 57, "vd": 3},
{"v": 60, "vd": 3},
{"v": 61, "vd": 1},
{"v": 62, "vd": 1},
{"v": 63, "vd": 1},
{"v": 63, "vd": 0}';
$array = array_map(function($a){ return $a['v']; }, json_decode("[$json]", true));
var_dump($array);