Преобразовать строку в букву на PHP

123
24 мая 2019, 20:10

Есть некая строка $string

И есть некоторый набор букв/цифр в массиве. Допустим, 4 числа: 1 2 3 4

Задача состоит в том, чтобы предсказуемо, постоянно и равномерно преобразовывать строку в одну из букв/чисел, указанных в массиве, при этом не важно какой будет буква или число - важен лишь порядковый номер этого значения в массиве

Тоесть это некий очень упрощенный хеш

Answer 1

Допустим, 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);
Answer 2
    <?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
)
READ ALSO
foreach выводит последнею запись

foreach выводит последнею запись

Всем привет, есть такой код:

112
PhpExcel как скопировать таблицу?

PhpExcel как скопировать таблицу?

Вывожу данные с xls файла на сайтиспользую библиотеку PHPExel

116
Современные форматы изображения JPEG 2000, JPEG XR и WebP

Современные форматы изображения JPEG 2000, JPEG XR и WebP

прошу помощи решить проблему при оптимизации сайта , гугл pagespeed просит "Используйте современные форматы изображений" (JPEG 2000, JPEG XR и WebP) попробовал...

127
Отправка form-data через CURL

Отправка form-data через CURL

Сервер принимает в обработку текстовом формате данные через form-dataНе могу понять как правильно эти данные отправить ? Через Postman всё работает...

145