首页 > 解决方案 > 如何添加每个字符的结尾和开头

问题描述

我有:文本

我想替换为:

1T_1E_1X_1T_etc...

解决了:

<?php
$str = "TEXTRANDOM";
$len = strlen($str);
for($i = 0; $i < $len; ++$i) 
echo "1".$str[$i]."_";
?>

标签: php

解决方案


你可以像这样使用preg_split('//u', $yourText, -1, PREG_SPLIT_NO_EMPTY)array_map

$yourText = 'TEXTRANDOM';
// execute a function for every letter in your string
$arrayOfTags = array_map(function (string $letter): string {
    return '1'.$letter.'_'; // concat every letter with number and _
}, preg_split('//u', $yourText, -1, PREG_SPLIT_NO_EMPTY));
echo implode('', $arrayOfTags); // make the array into a string back again

str_split会将字符串拆分为字节而不是字母。要将字符串拆分为字母数组,您可以使用preg_split('//u', $yourText, -1, PREG_SPLIT_NO_EMPTY).
你也可以只用一个循环来做到这一点:

$arrayOfletters = preg_split('//u', $yourText, -1, PREG_SPLIT_NO_EMPTY);
foreach ($arrayOfletters as $letter) {
    echo '1'.$letter.'_';
}

推荐阅读