Есть некая строка $string
И есть некоторый набор букв/цифр в массиве. Допустим, 4 числа: 1 2 3 4
Задача состоит в том, чтобы предсказуемо, постоянно и равномерно преобразовывать строку в одну из букв/чисел, указанных в массиве, при этом не важно какой будет буква или число - важен лишь порядковый номер этого значения в массиве
Тоесть это некий очень упрощенный хеш
Допустим, 4 числа: 1 2 3 4
<?php
function simple_hash ($s) {
$c = [1, 2, 3, 4];
$a = unpack ('C*', $s);
return $c [array_reduce ($a, function ($a, $n) {return $a += ceil ($n / 256);}, 0) % count ($c)];
}
echo '<pre>' . print_r (simple_hash ('Hello world!'), true);
<?php
function simple_hash ($s) {
$c = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
$a = unpack ('C*', $s);
return $c [array_reduce ($a, function ($a, $n) {return $a += ceil ($n / 256);}, 0) % count ($c)];
}
while ($i < 17) {
$i ++;
$arr[simple_hash ($i)]++;
}
print_r($arr);
Результат:
Array
(
[2] => 9
[3] => 8
)
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
прошу помощи решить проблему при оптимизации сайта , гугл pagespeed просит "Используйте современные форматы изображений" (JPEG 2000, JPEG XR и WebP) попробовал...
Сервер принимает в обработку текстовом формате данные через form-dataНе могу понять как правильно эти данные отправить ? Через Postman всё работает...