php - 如何添加每个字符的结尾和开头
问题描述
我有:文本
我想替换为:
1T_1E_1X_1T_etc...
解决了:
<?php
$str = "TEXTRANDOM";
$len = strlen($str);
for($i = 0; $i < $len; ++$i)
echo "1".$str[$i]."_";
?>
解决方案
你可以像这样使用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.'_';
}
推荐阅读
- python - 我正在抓取具有相似词典的链接。如何区分每个字典?
- json - 基于名称提取 id 的 JSON 查询
- python - 如何使用 Google OR 工具在 VRPTW 中添加分离、设置惩罚和防止某些位置被丢弃?
- html - CSS Grid:同一页面中不同网格容器的相同内容名称和区域名称
- javascript - discord.js 参数 startsWith 不能是正则表达式
- regex - 仅在下一次关闭时移除左括号
- html - 如何交换两个 HTML 的选项值
- vue.js - 每当页面更改时显示微调器(预加载器/加载指示器)并在 Vue Gridsome 中加载所有资产时隐藏
- python - python中的和+有什么区别
- .net-core - 使用 Blazor 访问设备摄像头