我现在有一个像这样的字符串:我想在PHP中执行以下操作:
$string = 'Testing giving dancing 喝 喝 passing 制图 giving 跑步 吃';
我想将所有汉字移动到字符串的末尾,并且还要颠倒它们的当前顺序。因此,删除重复的英语单词并返回修改后的字符串
答案 0 :(得分:1)
您在这里!检查代码中的注释:
<?php
$string = 'Testing giving dancing 喝 喝 passing 制图 giving 跑步 吃';
// split by a space into an array
$explosion = explode(' ', $string);
$normalWords = [];
$chineseWords = [];
// loop through the array
foreach ($explosion as $debris) {
// if not normal alphabet characters
if (!preg_match('#[a-zA-Z]+#', $debris) && !in_array($debris, $chineseWords)) {
// add to chinese words array if not already in the array
$chineseWords[] = $debris;
} elseif (preg_match('#[a-zA-Z]+#', $debris) && !in_array($debris, $normalWords)) {
// add to normal words array if not already in the array
$normalWords[] = $debris;
}
}
// reverse the chinese characters like you wanted
$chineseWords = array_reverse($chineseWords);
// Piece it all back together
$string = implode(' ', $normalWords) . ' ' . implode(' ', $chineseWords);
// and output
echo $string; // Testing giving dancing passing 吃 跑步 制图 喝
在这里看到它! https://3v4l.org/FWQWG