Сравнить значение из строки
Мне нужно сравнить значения из строки и если они совпадают присваивать единицу значение.
if ($strBin == 1 || $strBin == 0) {
return 1;
}
if ($strBin == " ") {
return "\n";
}
echo "Вывод зашифрованного значения:"."</br>".$strBin."</br>"; // Вывод зашифрованной строки
У меня выводит то же значение что и было изначально.
Пробовал вот так
$arraySource = str_split($strBin);
$arrayBinary1 = array_map(function() {
$arrayBinary = array_map(function() {
return 1."\n";
}, $arraySource);
$strBinary = implode($arrayBinary); // закодированная строка
echo "Содержание файла:"."</br>".$strBinary."</br>";
Такой код вывод зашифрованное сообщение, но после каждого символа делает пробел, а мне нужно что бы было вот так:
Исходное сообщение: 0100 1101 0011
Закодированное сообщение единицами: 1111 1111 1111
В Примере 1 выводит вот так:
Исходное сообщение: 0100 1101 0011
В Примере 2 выводит вот так:
Исходное сообщение: 0100 1101 0011
Закодированное сообщение единицами: 1 1 1 1 1 1 1 1 1 1 1 1
Ответы (2 шт):
Автор решения: vp_arth
→ Ссылка
Вам просто нужно сохранять исходные пробелы:
$str = '1001 1100 0100 1101';
$encoded = implode(array_map(fn($ch) => $ch === ' ' ? ' ' : '1', str_split($str)));
echo $encoded; // 1111 1111 1111 1111
$str = '1001 1100 0100 1101';
$encoded = implode(array_map(function($ch) {
return $ch === ' ' ? ' ' : random_int(0, 1);
}, str_split($str)));
echo $encoded;