我有一个函数,可以根据字符串中的单词数将字符串分成两个相等的部分.然后,我会将2根新的琴弦分别包装在span张纸上.如果原始字符串中有奇数个单词,我希望第二个跨度包含1个额外的单词.

目前,新增的单词将排到前span个:

$array  = explode( ' ', 'Lorem ipsum dolor sit amet' );
$count = count( $array );
$per_part = max( round( $count / 2 ), 1 );
$new_array     = [];

for ( $i = 0; $i < 2; $i++ ) {
    $new_array[] = array_slice( $array, $i * $per_part, $per_part );
}

$first_string = join(' ', $new_array[0]);
$second_string = join(' ', $new_array[1]);

$new_string = '<span>' . $first_string . '</span>' . ' <span>' . $second_string . '</span>';
echo htmlspecialchars($new_string);

当前结果:

<span>Lorem ipsum dolor</span> <span>sit amet</span>

预期结果:

<span>Lorem ipsum</span> <span>dolor sit amet</span>

推荐答案

通过将总字数除以2来四舍五入计算每部分的字数.这将得到第一部分的字数.然后,计算剩余的单词,这些单词将被添加到第二部分.

$array = explode( ' ', 'Lorem ipsum dolor sit amet' );
$count = count( $array );
$per_part = floor( $count / 2 );
$remaining_words = $count - $per_part;

$new_array = [];

$new_array[] = array_slice( $array, 0, $per_part );
$new_array[] = array_slice( $array, $per_part );

$first_string = join(' ', $new_array[0]);
$second_string = join(' ', $new_array[1]);

$new_string = '<span>' . $first_string . '</span>' . ' <span>' . $second_string . '</span>';
echo htmlspecialchars($new_string); //Expected Output: <span>Lorem ipsum</span> <span>dolor sit amet</span>

当总计数为奇数时,使用floor( $count / 2 )来确保第一部分获得大部分单词.然后将剩下的单词添加到第二部分中.这样,如果原始字符串中有奇数个单词,第二个跨度将包含额外的1个单词.

Php相关问答推荐

如何根据键上的特定标准对对象数组进行排序?

Woocommerce自定义变体html表仅显示带值的列

EBay Inventory API createOrReplaceInventoryItem出错

使用PHP curl的Amazon SP API批处理调用

PHP空数组定义与开始或结束逗号

Apache只允许index.php-不从根目录工作

在PHP中处理Linux输入事件(/dev/input/Event*)

强制客户在注册时 Select WooCommerce角色

按类别层次 struct 过滤 Laravel 集合

无法允许元素(img:'src')与symfony html-sanitizer(symfony6.3 php 8.2)

如何使用 PHP 将带有图像的文本上传到 Linkedin?

如何使用不同的方法编写嵌套连接查询并将两列连接成一列在 laravel 查询生成器中

php如何删除括号内的百分比值

仅允许减少 WooCommerce 中已完成订单的库存数量

docker |管道失败的 ubuntu 源列表

使用 Process facade 在外部 Laravel 项目上运行 Artisan 命令会返回主项目的数据库错误

为什么 AJAX 请求没有通过 is_ajax_request() codeigniter 的条件?

无法在 Laravel 10 中安装 jenssegers/mongodb

password_verify 在 PHP 7.4 中有效,但在 PHP 8.2 中无效

Laravel - 关联与设置观察者事件的 ID