让有一个具有任意数量的字符的$str
和$cons=25
,以及$rest=$cons-strlen( $str )
。
现在,我想在框中打印字符串,所以我做了一个循环,它捕获字符串中的字符,并在div中用类w3边框回显它。
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"> </div>';
}
}
echo'</div>';
现在,如果字符串中的字符数小于$cons
,那么上面的操作就很好了,但除此之外,我还想这样做,它将打印另一个'<div class="w3-border w3-center"> </div>'
,直到$second>0 ($second=$cons$rest)、$third>0 ($third=$cons$秒)等等。
我很难弄清楚如何做到这一点?任何帮助/暗示都将不胜感激。
对我的问题的看法-我希望字符串的数据在框内打印,如果数据小于25框,则以1行最多25框的形式打印,然后将数据打印为空白框,使其不超过25框,如下所示
但是,如果str大于25,那么它将转到下一行,如下所示
因此,我想做一些事情,可以使第二行完成多达25个框,或者如果数据一直到第三行,那么将这些框保持到最后,这样看起来应该是干净的,但我不知道如何处理它。
发布于 2018-07-01 01:04:46
模算子在这里可能会有所帮助。它计算(在本例中) strlen() / 25
的其余部分。你能从那里算出来吗?
类似这样的东西可能会起作用,尽管我不确定这是确切的解决方案--没有尝试过:
$rest = $cons - ($strlen % $cons);
编辑:
在运行下面的代码之后,我确信上面的解决方案应该可以工作。或者我可能误解了你的问题。
<?php
$cons = 25;
$strlen = 24;
echo $cons - ($strlen % $cons). "<br>";
//Output: 1
$strlen = 26;
echo $cons - ($strlen % $cons);
// Output: 24
?>
https://stackoverflow.com/questions/51121576
复制相似问题