печать данных определенное количество раз по отношению к const и длине строки - PullRequest
0 голосов
/ 01 июля 2018

Пусть будет строка $str с любым количеством символов и $cons=25, а также $rest=$cons-strlen( $str ).

Теперь я хотел напечатать строку внутри ящиков, поэтому я сделал цикл, в котором она ловит символы внутри строки и выводит ее внутри div с классом w3-border

Css:

.w3-border
{
border: 1px solid #f1e1d4 !important;
width:16px !important;
height:25px;
border-collapse: collapse;
float: left;
}

Php:

echo'<div class="w3-container" style="margin-bottom:5px !important">';
$str = $row['address'];
$strlen = strlen( $str );
$rest=$cons-$strlen;
echo'<div class="w3-left" style="width:150px">Address</div>';
for( $i = 0; $i <= $strlen; $i++ ) {
$char = substr( $str, $i, 1 );
    echo '<div class="w3-border w3-center">'.strtoupper($char).'</div>';
}
if($rest>0)
{
    for($i=0;$i<$rest;$i++)
    {
    echo '<div class="w3-border w3-center">&nbsp;</div>';
    }
}
echo'</div>';

Теперь вышеприведенное работает нормально, если количество символов в строке меньше $cons, но их больше, я хотел это сделать, он будет печатать еще '<div class="w3-border w3-center">&nbsp;</div>' до $ second> 0 ($ second = $ cons- $ rest), $ third> 0 ($ third = $ cons- $ second) и так далее.

Мне трудно понять, как этого добиться? Любая помощь / подсказка будет оценена.

Вид моей проблемы - я хочу, чтобы данные строки печатались внутри ящиков, в одной строке максимум 25 ящиков, если данные меньше 25 ящиков, затем распечатывай данные, а остальные оставь пустыми ящики, чтобы сделать до 25 ящиков, как это enter image description here

но если str больше 25, то он переходит к следующей строке, как эта

enter image description here

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

1 Ответ

0 голосов
/ 01 июля 2018

Оператор по модулю может быть полезен здесь. Он рассчитывает (в данном случае) остаток от strlen() / 25. Вы можете решить это оттуда?

Что-то в этом роде может работать, хотя я не уверен, что это точное решение - не пробовал:

$rest = $cons - ($strlen % $cons); 

EDIT:

После запуска следующего кода я убежден, что вышеуказанное решение должно работать. Или, может быть, я неправильно понимаю ваш вопрос ...

<?php
$cons = 25;

$strlen = 24;
echo $cons - ($strlen % $cons). "<br>";
//Output: 1

$strlen = 26;
echo $cons - ($strlen % $cons);
// Output: 24
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...