0

ここに私のコードがありますが、動的ではありません。配列の値が10より大きい場合、新しい行が自動的に作成されます...ありがとう

<?php
$limit = 10;
$newline = explode(" ",$caption); 
array_map(null, $newline);

$count = count($newline); //count number of array values



$nlimit = strlen($newline[0]) + strlen($newline[1]);

if($limit >= $nlimit)
{
    echo $newline[0] . " ",$newline[1];
}
else
{
    echo $newline[0] . " ","<br>". $newline[1];
}


?>
4

1 に答える 1

1
$caption = "im trying to figure out how to create a new line whenever an array value reaches more than 10 characters";

$lineCharlimit = 10;

$captionWordsArray = explode( " " ,$caption ); 

$line = '';

foreach( $captionWordsArray as $index => $word )
{
    if( strlen( $line .$word ) > $lineCharlimit )
    {
        echo $line ,'<br>';
        $line = $word;
    }
    else
    {
        $line .= ( $line == '' ? '' : ' ' ) .$word;
    }
}
echo $line;

出力します:

im trying
to figure
out how to
create a
new line
whenever an
array value
reaches
more than
10
characters

ただし、以下のような出力の場合 (最後の単語でない限り、10 文字未満の行はありません):

im trying to
figure out how
to create a
new line whenever
an array value
reaches more
than 10 characters

以下のようにコードを変更します。

$caption = "im trying to figure out how to create a new line whenever an array value reaches more than 10 characters";

$lineCharlimit = 10;

$captionWordsArray = explode( " " ,$caption ); 

$line = '';

foreach( $captionWordsArray as $index => $word )
{
    $line .= ( $line == '' ? '' : ' ' ) .$word;

    if( strlen( $line ) > $lineCharlimit )
    {
        echo $line ,'<br>';
        $line = '';
    }
}
echo $line;
于 2013-11-15T05:57:32.923 に答える